setPlaybackQuality无法使用YouTube JS API [英] setPlaybackQuality not working YouTube JS API
问题描述
第一个视频加载在 1080p
,而不是按下 class =quality的按钮
它应该更改质量为720p但它在HTML5播放器中不起作用。
First video is loaded in 1080p
than when I press a button with class="quality"
It should change the quality to 720p but it's not working in HTML5 player.
它适用于Flash Player但不适用于HTML5。我正在使用JavaScript Player API。
It works on Flash Player but not in HTML5. I'm using JavaScript Player API.
注意:这些解决方案都不适用于我。 YouTube iFrame APIsetPlaybackQuality或suggestedQuality无法正常工作
Note: None of these solutions worked for me. YouTube iFrame API "setPlaybackQuality" or "suggestedQuality" not working
function onPlayerReady(event) {
event.target.playVideo();
event.target.setPlaybackQuality('hd1080'); //works
}
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING) {
$(".quality").click(function() {
event.target.setPlaybackQuality('hd720'); //doesn't work
});
}
}
问题是你不能降级质量。一旦你设置为1080p ex,你就不能回到720p。
推荐答案
我从此网站 iframe嵌入的YouTube播放器API参考 。
我手动添加了一个按钮来改变质量,这是完全正常的,这是工作代码。
I have taken the example from this site YouTube Player API Reference for iframe Embeds. I have manually added one button to change the quality which is working absolutely fine, Here is the working code.
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<button id="change_quality">Change Quality</button>
<div id="player"></div>
<script>
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
event.target.playVideo();
event.target.setPlaybackQuality('360p');
}
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING) {
$("#change_quality").click(function() {
event.target.setPlaybackQuality('240p');
});
}
}
</script>
</body>
</html>
最初 onPlayerReady 质量设置为 360p 。
点击更改质量按钮后,质量设置为144p。
Initially onPlayerReady the quality is set to 360p. After clicking on Change Quality button the quality is set to 144p.
这篇关于setPlaybackQuality无法使用YouTube JS API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!