javascript - 设置 jwplayer youtube 视频播放质量

标签 javascript youtube youtube-api jwplayer jwplayer6

我正在使用 jw 播放器播放 YouTube 视频,但我需要视频开始以高清(720p)播放,我使用以下代码:

<div id="player">
<script>
 jwplayer("player").setup({
        file: "http://www.youtube.com/watch?v=o8UCI7r1Aqw",
        height: "720",
        width: "1280"
    });
</script>
</div>
<script>
jwplayer('player').onPlay(function() {
jwplayer().setPlaybackQuality('hd720');
});
</script>

但我收到以下错误

There was an error calling back an event handler

Here是我设置的测试播放器。

最佳答案

对我来说,解决方案是原生 YouTube API。 (来自https://developers.google.com/youtube/iframe_api_reference#setPlaybackQuality)



请参阅Demo !
(但它有一个错误:您可以切换到较高质量,但随后它不会转到较低质量......)

<div id="MyPlayerDivIDD1"></div>    <div id="MyQualities"></div>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://www.youtube.com/player_api"></script>
<script type="text/javascript">
function onYouTubePlayerAPIReady() {
    ytp1 = new YT.Player('MyPlayerDivIDD1', {   height: '200',  width: '290', videoId: 'Rk6_hdRtJOE',           playerVars: { 'autoplay': 1, 'controls': 1 , 'autohide':0,},                    events: {'onReady': onPlayerReady,  'onStateChange': onPlayerStateChange }                         });
    var startedd=false; var MyQuality; 
}  
function onPlayerReady(event) {}
function onPlayerStateChange(event) {   if (event.data == YT.PlayerState.PLAYING && !startedd) { SetQuallll(event);startedd=true; }  }
function SetQuallll(event) {    MyQuality = MyQuality || 'tiny';    event.target.setPlaybackQuality(MyQuality);  }  
</script>



<br/> <a href="javascript:ShowMenu();">SHOW QUALITY Switcher </a>
<script>
function ShowMenu(){
    AllQualities = ytp1.getAvailableQualityLevels(); AllQualities.push("hd720"); AllQualities.push("hd1080");
    for (var i=1; i<AllQualities.length; i++) {  document.getElementById("MyQualities").innerHTML += ' <a href="javascript:  startedd=false;  MyQuality=\''+AllQualities[i]+'\'; alert(\'Current Qualityy:\'+ytp1.getPlaybackQuality() + \' ---------  Switching To:'+AllQualities[i]+'\');  ytp1.pauseVideo(); ytp1.setPlaybackQuality(\''+AllQualities[i]+'\');  ytp1.playVideo();  void(0); ">'+i + ')' + AllQualities[i]+'</a>  '; }
}</script>

关于javascript - 设置 jwplayer youtube 视频播放质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20454090/

相关文章:

javascript - javascript中的IE7和IE 8 Youtube嵌入式视频错误

javascript - 使用 Oauth-JS 获取 YouTube channel 名称和链接

android - ListView 中显示的 Youtube 播放列表

javascript - 通过 JavaScript 使用 JSON

javascript - 一次改变一个字符串的字体

javascript - 最好的 Javascript 内存检测工具有哪些?

javascript - 将内联 Youtube API javascript 代码移至单独的文件

youtube-api - 为什么 Youtube 上传小部件中的文件上传被禁用?

youtube-api - 在移动设备(Android Chrome 和 Firefox)上的 iframe HTML5 播放器中没有自动播放?

javascript - crossfilter.js,如何处理日期维度上的人为重复项