Youtube IFrame API onError wird mit dem Fehlercode 150 für Videos von Vevo ausgelöst
Lassen Sie mich mein Szenario erklären. Ich möchte benutzenYoutube IFrame API um einige videos auf meiner website einzubetten. Ich habe das Video mit id getestetwdGZBRAwW74 (https://www.youtube.com/watch?v=wdGZBRAwW74) auf dieser Seite:Youtube IFrame Player Demo. Und es funktioniert in Ordnung.
Ich versuche diesen Beispielcode:
<!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>
mit einigen virtuellen Host-Domains auf meinem Localhost und ich habe Ergebnis:
mit Domainapp.centaur.com/youtube/index.htm: IFrame API funktioniert einwandfrei, das Video lässt sich problemlos abspielen.mit Domainapp.music.com/youtube/index.html: IFrame API funktioniert einwandfrei, aber das Video kann nicht abgespielt werden. API wird auf Fehler 150 ausgelöst und der eingebettete Player zeigt eine Meldung an. "Dieses Video enthält Inhalte von VEVO, die die Anzeige auf dieser Website gesperrt haben. Auf Youtube ansehen"mit Domainapp.musiccentaur.com/youtube/index.htm: Wie im ersten Fall funktioniert alles in Ordnungmit Domainapp.centaurmusic.com/ youtube /: wie im ersten fall funktioniert alles in ordnungWie ich weiß, steht der Fehler 150 für "Der Eigentümer des angeforderten Videos lässt es nicht zu, dass es in eingebetteten Playern abgespielt wird". Aber ich sehe, dass es in den Fällen 1, 3, 4 immer noch funktioniert. Was bedeutet das?
Es scheint, dass alle Videos von Vevo im Zusammenhang mit diesen Problemen stehen. Ich bin mir nicht sicher, ob Vevo Richtlinien zum Einbetten der Videos definiert hat.
Vielleicht kommt das Problem von meiner Domainmusic.com, aber ich bin mir nicht sicher, ob es Domainregeln gibt, um das Video von Vevo auf Websites einzubetten.
Was ist, wenn ich eine Domain für meine Website kaufe, dann erhalte ich den Fehler 150, das ist so schlimm. :(
Gibt es jemanden, der sich vorher damit befasst? Bitte geben Sie mir einige Lösungen. Danke im Voraus.
Hinweis: Dieser Fehler tritt nur bei Videos von Vevo auf.