我有一段 Javascript,可以成功地使嵌入式 YouTube 视频始终以高清格式播放(如果该视频也以高清格式上传)。
我的问题:当我在 Internet Explorer 中运行代码时,它不会以 HD720 播放视频,它只能以 420(大=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>
最佳答案
在 480 像素视频播放器中播放 720p(720 像素高)视频不会提高视频质量,因为额外的像素无法在设备上显示。事实上,与在 YouTube 服务器上进行转码时相比,调整大小必须以更加注重性能的方式进行,并且最终的播放质量可能比允许标准分辨率显示更差。
默认情况下,YouTube 播放器会在考虑所有播放控件后选择适合播放器内部的最大分辨率(按高度)。即对于 480 像素高的播放器,适合的最高质量是 420p 版本。
我还没有在不同的播放器和编解码器上明确测试 setPlaybackQuality 方法,看看它是否与初始视频加载有不同的行为,但我不认为这样做的目的是让开发人员强制使用比实际更高的分辨率被显示。
关于javascript - 始终以高清格式播放 YouTube 视频 : Doesn't work on IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13390785/