【问题标题】:Always Play YouTube Videos in HD: Doesn't work on IE始终以高清播放 YouTube 视频:不适用于 IE
【发布时间】:2012-11-03 15:43:31
【问题描述】:

我有一段 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> 

【问题讨论】:

  • 这个问题可能有助于解决让“hd720”参数工作的问题...stackoverflow.com/questions/8802498/…。我的另一个想法——你在使用 iframe API 吗?如果是这样,它会根据条件自动选择 HTML5 播放器或 Flash 播放器,并且 IE 8 及更低版本将仅限于 Flash,这可能会影响 youtube 必须发送的视频质量......但这可能是一个红鲱鱼我的部分。

标签: javascript jquery html youtube-api


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 2016-11-15
    • 2014-11-19
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多