我目前正在为我们计划的Chromecast应用构建自定义接收器。 我需要在电视上显示YouTube视频,以及我们的应用包含的其他照片和信息。
但是,只要在屏幕上播放YouTube iframe嵌入,几分钟后(最少2分钟,最多15分钟),Chromecast就会完全冻结(包括Dev Tools调试器),最终只会自行重置。
使用此超级简单的测试页,每次,多个Chromecast,各种视频都可以重现此问题:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Youtube Test</title>
</head>
<body>
<iframe width="1280" height="720" src="//www.youtube.com/embed/YE7VzlLtp-4?autoplay=1" allowfullscreen></iframe>
</body>
</html>
有没有人遇到类似的问题或解决方案?
包含的时间轴[1]显示iframe停止通过AJAX获取帧,并在整个事件崩溃后不久。
[1]记录开发工具时间表:https://drive.google.com/file/d/0B_bgLIi2Uw5WcDBHSlpwVlJ5eFE/edit?usp=sharing
答案 0 :(得分:0)
我正在使用此代码并且它正在运行。
...
<div id="player" style="text-align: center"></div>
<script type="text/javascript">
var vid = ...;
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
playerVars: {
videoId: vid,
'enablejsapi': 1,
'autoplay': 1,
'rel': 0,
'showinfo': 0,
'controls': 0,
'egm': 0,
'showsearch': 0
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
'onError': onError
}
});
}
</script>
...
您可以在此处查看iframe api参考:https://developers.google.com/youtube/iframe_api_reference
问候。