始终以高清方式播放YouTube视频:无法在IE上播放

时间:2012-11-15 02:34:30

标签: javascript jquery html youtube-api

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

我的问题:当我在Internet Explorer中运行代码时,它不会在HD720中播放视频,它只能播放420(大= 420像素)。当我在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> 

1 个答案:

答案 0 :(得分:0)

在480px视频播放器中播放720p(720像素高)视频不会改善视频质量,因为额外的像素无法在设备上显示。事实上,调整大小必须以比在YouTube服务器上转码时更注重效果的方式完成,并且最终可能会比允许标准分辨率显示质量更差的播放。

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

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