setPlaybackQuality无法使用YouTube JS API [英] setPlaybackQuality not working YouTube JS API

查看:84
本文介绍了setPlaybackQuality无法使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆