YouTube嵌入式Chromecast崩溃了

时间:2014-05-07 11:49:50

标签: youtube youtube-api chromecast google-cast youtube-iframe-api

我目前正在为我们计划的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

1 个答案:

答案 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

问候。