iOS fix infinite loop in AVPlayer observer

This commit is contained in:
advplyr
2022-04-16 10:35:48 -05:00
parent 6cea0ba03d
commit 3f2b3f2e9c
+4 -2
View File
@@ -253,15 +253,17 @@ class AudioPlayer: NSObject {
if playerStatus == .readyToPlay { if playerStatus == .readyToPlay {
self.updateNowPlaying() self.updateNowPlaying()
let firstReady = self.status < 0
self.status = 0 self.status = 0
if self.playWhenReady { if self.playWhenReady {
seek(playbackSession.currentTime)
self.playWhenReady = false self.playWhenReady = false
self.play() self.play()
} } else if (firstReady) { // Only seek on first readyToPlay
seek(playbackSession.currentTime) seek(playbackSession.currentTime)
} }
} }
}
} else if context == &playerContext { } else if context == &playerContext {
if keyPath == #keyPath(AVPlayer.rate) { if keyPath == #keyPath(AVPlayer.rate) {
self.setPlaybackRate(change?[.newKey] as? Float ?? 1.0, observed: true) self.setPlaybackRate(change?[.newKey] as? Float ?? 1.0, observed: true)