3

我目前正在为我们计划中的 Chromecast 应用程序构建一个自定义接收器。我需要在电视上显示 YouTube 视频,以及我们的应用程序包含的其他照片和信息。

但是,每当在屏幕上播放嵌入的 YouTube iframe 时,几分钟(最少 2 分钟,最多 15 分钟)后,Chromecast 就会完全冻结(包括开发工具调试器),最终只会自行重置。

使用这个超级简单的测试页面,每次都可以在多个 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

4

1 回答 1

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

问候。

于 2014-05-09T08:00:57.837 回答