YouTube iFrame API “setPlaybackQuality” or “suggestedQuality” not working

后端 未结 6 952
温柔的废话
温柔的废话 2020-11-30 07:02

I\'m having some trouble setting the quality settings on a video via the Youtube iFrame API. This is my code:

var player;

player = new YT.Player(\'player\',         


        
6条回答
  •  有刺的猬
    2020-11-30 07:04

    Found a possible hack/solution.

    If I wait until the video has started playing, then apply setPlaybackQuality - it works. Thusly:

    player = new YT.Player('player', {
        height: '490',
        width: '725',
        videoId: yturl,
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
        }
    });
    
    function onPlayerReady(event) {
        player.setVolume(100);
        event.target.playVideo();
    }
    
    function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.PLAYING) {
            event.target.setPlaybackQuality('hd720');  // <-- WORKS!
        }
    }
    

    However, the solution isn't ideal as the video first starts to buffer on a lower quality - then switch to 720 once it starts playing. Any comments or alternative solutions will be appreciated.

提交回复
热议问题