1

我有一段 Javascript 可以成功地使嵌入式 YouTube 视频始终以高清格式播放(如果该视频也以高清格式上传)。

我的问题:当我在 Internet Explorer 中运行代码时,它不会在 HD720 中播放视频,它只能在 420(Large=420px)中播放。当我在 Chrome、Firefox 和 Safari 中运行这个确切的代码时,它们都在 HD720 中播放视频。

你知道我怎样才能让 IE 总是在 HD720 中播放我的嵌入式 Youtube 视频吗?

我的代码:请参阅下面的注释为什么“hd720”不起作用:

<script type="text/javascript" src="https://www.youtube.com/player_api"></script>
<script>
    function onPlayerReady(event) {
            event.target.setPlaybackQuality('highres'); 
            // NOTE: MAKING the above value 'hd720' makes NONE of the browsers
            // play the video in HD720, test it for yourself to see.
            // So thats NOT a solution.
    }

  function loadYouTubeVideo(uid) {
        setTimeout( function() {
                    var id         = uid;
                    var instPlayer = new YT.Player(id, {
                        height: '480',
                        width: '853',
                        enablejsapi: 1,
                        suggestedQuality: 'highres',
                        videoId: uid,
                        events: {
                                'onReady': onPlayerReady 
                        }
                    });
            }, 500);
    }
</script> 

然后你像这样在你的页面中嵌入一个 Youtube 视频(注意 *VIDEO_ID* 是你的 youtube 视频的唯一 ID):

<div id="VIDEO_ID"></div>
<script>
    loadYouTubeVideo("VIDEO_ID");
</script> 
4

1 回答 1

0

在 480 像素视频播放器中播放 720p(720 像素高)视频不会提高所看到的视频质量,因为额外的像素无法在设备上显示。事实上,与在 YouTube 服务器上进行转码时相比,调整大小必须以更注重性能的方式进行,并且您最终可能会获得比允许显示标准分辨率更差的播放质量。

默认情况下,YouTube 播放器将在考虑任何播放控件后选择适合播放器内部的最大分辨率(按高度)。即对于 480 像素高的播放器,适合的最高质量是 420p 版本。

我没有在不同的播放器和编解码器中明确测试 setPlaybackQuality 方法,以查看它是否具有与初始视频加载不同的行为,但我不认为其目的是让开发人员强制使用比实际显示更高的分辨率。

于 2012-11-21T07:18:59.267 回答