当我尝试加载某些视频(例如热门歌曲)时,API会返回错误代码150(请求的视频不允许在嵌入式播放器中播放)。但是,如果我将视频加载到iframe或嵌入标记中,则可以正常工作。
这有效:
<iframe width="560" height="315" src="http://www.youtube.com/embed/j5-yKhDd64s" frameborder="0" allowfullscreen></iframe>
这也有效:
<object width="560" height="315"><param name="movie" value="http://www.youtube.com/v/j5-yKhDd64s?version=3&hl=en_GB"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/j5-yKhDd64s?version=3&hl=en_GB" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>
这会警告150错误:
var defaultVideo = 'j5-yKhDd64s';
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player-wrap', {
height: '390',
width: '640',
videoId: defaultVideo,
events: {
'onError': onPlayerError
}
});
}
function onPlayerError(event) {
alert('Error: '+event.data);
player.stopVideo();
player.loadVideoById('');
}
为什么会这样?
以下是API的参考:http://code.google.com/apis/youtube/js_api_reference.html#Events
答案 0 :(得分:1)
此错误代码的历史可追溯至2009年以上,如果您收到错误代码150,则视频将无法在任何浏览器或任何播放器上运行。
错误代码150:视频只能是在youtube上播放广告的播放器。
答案 1 :(得分:0)
使用Iframe API嵌入一些受保护的视频时,我遇到了类似的问题。这些视频在Chrome上播放,但在浏览Firefox和Safari时出现错误150.
我找到的唯一解决方法是切换回依赖Flash嵌入的Javascript API。出于某种原因,所有视频嵌入现在都适用于每个浏览器,从那以后我没有看到任何错误150。
答案 2 :(得分:0)
查看https://developers.google.com/youtube/js_api_reference#onError
101 - 所请求视频的所有者不允许在嵌入式播放器中播放。
150 - 此错误与101相同。伪装只是101错误!