我正在尝试将YouTube播放器嵌入到下面的网页中。
我遇到的问题是,玩家最初会加载并播放第一个视频,但是当.loadvideobyid称为播放器时,播放器希望加载视频(视频标题文本更改),但随后被卡在黑屏上玩。
这仅在Android上发生,因为将手机更新为Android 4.3以前,HTML5播放器(Chrome和默认浏览器都)发生,此前曾在4.2上处于良好状态。
。它可以通过桌面镀铬,并设置为伪造Android。
我还尝试了另外两款Android手机,并且在两者上都有完全相同的问题(两者也为4.3)。我也使用Google Code Playground示例YouTube Player进行间歇性地获得相同的行为。
如果我附上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>
我也有同样的问题。看起来暂时解决此问题的唯一方法是销毁和重新创建玩家实例。
我在这里找到了此解决方案:https://code.google.com/p/gdata-issues/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
}
});