Youtube IFrame API onError strzela z kodem błędu 150 dla filmów z Vevo
Pozwól mi wyjaśnić mój scenariusz. Chcę użyćYrube IFrame API zamieścić kilka filmów na mojej stronie. Testowałem wideo z identyfikatoremwdGZBRAwW74 (https://www.youtube.com/watch?v=wdGZBRAwW74) na tej stronie:Youtube IFrame Player Demo. I działa dobrze.
Wypróbowałem ten przykładowy kod:
<!DOCTYPE html>
<html>
<body>
<!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
<div id="player"></div>
<script>
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'wdGZBRAwW74',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
'onError': onPlayerError
}
});
}
// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
event.target.playVideo();
}
// 5. The API calls this function when the player's state changes.
// The function indicates that when playing a video (state=1),
// the player should play for six seconds and then stop.
var done = false;
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING && !done) {
setTimeout(stopVideo, 6000);
done = true;
}
}
function onPlayerError(event){
console.log(event.data);
}
function stopVideo() {
player.stopVideo();
}
</script>
</body>
</html>
z niektórymi domenami hostów wirtualnych na moim localhost i otrzymałem wynik:
z domenąapp.centaur.com/youtube/index.htm: Interfejs API IFrame działa poprawnie, wideo gra bez problemów.z domenąapp.music.com/youtube/index.html: Interfejs API IFrame działa poprawnie, ale wideo nie może zostać odtworzone, interfejs API uruchamia się na błędzie z błędem 150 i komunikatem pokazującym osadzonego odtwarzacza ”Ten film wideo zawiera treść od VEVO, który zablokował wyświetlanie go na tej stronie. Oglądaj na Youtube"z domenąapp.musiccentaur.com/youtube/index.htm: jak w pierwszym przypadku, wszystko działa poprawniez domenąapp.centaurmusic.com/ youtube /: jak w pierwszym przypadku, wszystko działa poprawnieJak wiem błąd 150 oznacza „Właściciel żądanego wideo nie pozwala na jego odtwarzanie w odtwarzaczach wbudowanych”. Ale widzę, że nadal działa w przypadku 1, 3, 4, więc co to znaczy?
Wyświetl wszystkie filmy Vevo związane z tym problemem. Nie jestem pewien, czy Vevo zdefiniował pewne zasady dotyczące umieszczania ich filmów.
Może problem pochodzi z mojej domenymusic.com, ale nie jestem pewien, czy istnieją pewne zasady domeny, aby osadzić wideo Vevo na stronach internetowych.
Co zrobić, jeśli kupię domenę na mojej stronie, a otrzymam błąd 150, to jest tak źle. :(
Czy jest ktoś, kto wcześniej się tym zajmuje? Proszę o kilka rozwiązań. Z góry dziękuję.
Uwaga: ten błąd występuje tylko w filmach Vevo.