Revert "Fix #799 and remove old unused quality selection"

This reverts commit 8c136c563a.
This commit is contained in:
Calvin Montgomery 2019-03-30 12:52:17 -07:00
parent 13c468c768
commit 5493a81611
2 changed files with 27 additions and 5 deletions

View file

@ -59,8 +59,7 @@ window.handleMediaUpdate = (data) ->
if data.currentTime < 0
data.currentTime = 0
PLAYER.load(data)
if not waiting
PLAYER.play()
PLAYER.play()
if waiting
PLAYER.seekTo(0)

View file

@ -4,6 +4,7 @@ window.YouTubePlayer = class YouTubePlayer extends Player
return new YouTubePlayer(data)
@setMediaProperties(data)
@qualityRaceCondition = true
@pauseSeekRaceCondition = false
waitUntilDefined(window, 'YT', =>
@ -17,8 +18,7 @@ window.YouTubePlayer = class YouTubePlayer extends Player
videoId: data.id
playerVars:
autohide: 1
autoplay: if data.currentTime > 0 then 1 else 0
start: if data.currentTime > 0 then Math.round(data.currentTime) else 0
autoplay: 1
controls: 1
iv_load_policy: 3 # iv_load_policy 3 indicates no annotations
rel: 0
@ -34,6 +34,9 @@ window.YouTubePlayer = class YouTubePlayer extends Player
@setMediaProperties(data)
if @yt and @yt.ready
@yt.loadVideoById(data.id, data.currentTime)
@qualityRaceCondition = true
if USEROPTS.default_quality
@setQuality(USEROPTS.default_quality)
else
console.error('WTF? YouTubePlayer::load() called but yt is not ready')
@ -42,6 +45,13 @@ window.YouTubePlayer = class YouTubePlayer extends Player
@setVolume(VOLUME)
onStateChange: (ev) ->
# For some reason setting the quality doesn't work
# until the first event has fired.
if @qualityRaceCondition
@qualityRaceCondition = false
if USEROPTS.default_quality
@setQuality(USEROPTS.default_quality)
# Similar to above, if you pause the video before the first PLAYING
# event is emitted, weird things happen.
if ev.data == YT.PlayerState.PLAYING and @pauseSeekRaceCondition
@ -80,7 +90,20 @@ window.YouTubePlayer = class YouTubePlayer extends Player
@yt.setVolume(volume * 100)
setQuality: (quality) ->
# YouTube no longer supports this
if not @yt or not @yt.ready
return
ytQuality = switch String(quality)
when '240' then 'small'
when '360' then 'medium'
when '480' then 'large'
when '720' then 'hd720'
when '1080' then 'hd1080'
when 'best' then 'highres'
else 'auto'
if ytQuality != 'auto'
@yt.setPlaybackQuality(ytQuality)
getTime: (cb) ->
if @yt and @yt.ready