Youtube Iframe Player Doesn't Automatically Switch Quality In Low Bandwidth On Mobile
Solution 1:
Based from this documentation, if the playback quality changes, the onPlaybackQualityChange
event will fire, and your code should respond to the event rather than the fact that it called the setPlaybackQuality
function.
onPlaybackQualityChange
event fires whenever the video playback quality changes. For example, if you call thesetPlaybackQuality(suggestedQuality)
function, this event will fire if the playback quality actually changes. Your application should respond to the event and should not assume that the quality will automatically change when thesetPlaybackQuality(suggestedQuality)
function is called. Similarly, your code should not assume that playback quality will only change as a result of an explicit call to setPlaybackQuality or any other function that allows you to set a suggested playback quality.
Then I recommend calling the getAvailableQualityLevels()
function to determine which quality levels are available for a video. For example, if your page displays a 1280px by 720px video player, a hd720
quality video will actually look better than an hd1080
quality video.
Check these related SO threads:
If you use event 3 (buffering) instead of event 5 (playing) there's no stutter for the user. Quality is changed as soon as it starts loading. Only weird thing is you need to set it in onPlayerReady as well or it doesn't work.
function onPlayerReady(event) { event.target.setPlaybackQuality('hd720'); } function onPlayerStateChange(event) { if (event.data == YT.PlayerState.BUFFERING) { event.target.setPlaybackQuality('hd720'); } }
Hope this helps!
Post a Comment for "Youtube Iframe Player Doesn't Automatically Switch Quality In Low Bandwidth On Mobile"