【发布时间】:2018-01-11 15:13:09
【问题描述】:
我一直在尝试使用 YouTube IFrame API更改来自 YouTube 的 iframe 嵌入视频的视频播放质量/分辨率,只需在中间调用 player.setPlaybackQuality("hd720")播放。
根据 YouTube:https://developers.google.com/youtube/iframe_api_reference#setPlaybackQuality
“该函数使视频以新质量在其当前位置重新加载。”
但是,只有当当前播放时间达到缓冲的旧质量流的终点时,视频的质量才会发生变化。那么,我如何才能强制播放器在那一刻以新分辨率缓冲视频,并从视频的“当前持续时间”开始显示它,就像它在 YouTube 中发生的一样?强>
顺便说一句,我在 html 中使用预定义的 iframe 标记以及嵌入 URL 中的所有参数,如下所示:
<iframe id="genesis" src="https://www.youtube.com/embed/EZgTo1kKSsg?enablejsapi=1&controls=0&showinfo=0&iv_load_policy=3&modestbranding=1&rel=0&fs=1" frameborder="0"></iframe>
然后创建播放器,如下所示:
$.getScript("https://www.youtube.com/player_api");
function onYouTubeIframeAPIReady() {
player = new YT.Player('genesis', {
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
'onPlaybackQualityChange': onQualityChange
}
});
}
function onQualityChange(){
console.log('Now playing at ' + player.getPlaybackQuality());
// Though it returns "hd720" within a few moments after hitting
// setPlaybackQuality("hd720"), actual playback quality remains the older one.
}
$(document).on('click', '.play', function(){
player.playVideo();
});
$(document).on('click', '#res_change_while_playing', function(){
player.setPlaybackQuality($(this).data("id")); // data-id="hd720"
});
请帮忙! 谢谢。
【问题讨论】:
标签: javascript jquery html youtube youtube-iframe-api