我正在尝试将YouTube播放器嵌入我的网页,如下所示。
我遇到的问题是,播放器最初加载并播放第一个视频,但是当调用.loadVideoById时,播放器会加载视频(视频标题文本发生变化),但之后会卡在黑屏上在玩。
这只发生在Android上,使用HTML5播放器(Chrome和默认浏览器),因为我的手机更新到Android 4.3,之前在4.2上已经很好了。
通过桌面浏览器可以正常工作,其中useragent设置为伪造Android。
我也尝试了其他两款Android手机,两者都有完全相同的问题(两者都是4.3)。我也使用Google Code Playground示例Youtube播放器间歇性地获得相同的行为。
如果我连接ADB Chrome远程调试器,我可以看到播放器陷入缓冲状态,尽管正在按预期下载视频片段。
有没有人经历过类似的事情?或者有任何建议吗?
代码:
<div id="ytwrapper">
<div id="player" >
</div>
</div>
<script type="text/javascript">
var ytplayer;
2。此代码异步加载IFrame Player API代码。
var tag = document.createElement("script");
tag.src = "http://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName("script")[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
第3。此功能会在下载API代码后创建(和YouTube播放器)。
function onYouTubeIframeAPIReady()
{
ytplayer = new YT.Player('player', { width: 1280,
height: 720,
videoId: 'M7lc1UVf-VE',
frameborder:0,
events:
{
"onReady": onYouTubePlayerReady,
"onStateChange": onytplayerStateChange,
"onPlaybackQualityChange": onYTQchange,
"onError": onYTError
}
});
}
function loadnextvid()
{
ytplayer.loadVideoById(vids[currentvid],0, vqs[currentvid]);
}
function onYouTubePlayerReady(playerId)
{
loadnextvid();
}
</script>
答案 0 :(得分:4)
我有同样的问题。看起来目前解决此问题的唯一方法是销毁并重新创建播放器实例。
我在这里找到了这个解决方案:https://code.google.com/p/gdata-issues/issues/detail?id=5273
适用于Android 4.4,iOS7。
if (player != null) {
player.destroy();
player = null;
}
player = new YT.Player('divplayer', {
width: '100%',
height: '100%',
videoId: video_id,
playerVars: { 'autoplay': 0, 'playerapiid': 'ytPlayer', 'border': 0, 'hd': 1, 'version': 3, 'rel': 0, 'color' : 'red' },
events: {
'onReady': onPlayerReady
}
});