diff --git a/ios/App/App/AudioPlayer.swift b/ios/App/App/AudioPlayer.swift index acab12fa..4413c147 100644 --- a/ios/App/App/AudioPlayer.swift +++ b/ios/App/App/AudioPlayer.swift @@ -22,6 +22,7 @@ class AudioPlayer: NSObject { // enums and @objc are not compatible @objc dynamic var status: Int @objc dynamic var rate: Float + private var tmpRate: Float = 1.0 private var playerContext = 0 private var playerItemContext = 0 @@ -71,7 +72,10 @@ class AudioPlayer: NSObject { public func play() { self.audioPlayer.play() self.status = 1 - self.rate = 1.0 + self.rate = self.tmpRate + self.audioPlayer.rate = self.tmpRate + + print("oof", self.rate, self.tmpRate) updateNowPlaying() } @@ -97,10 +101,17 @@ class AudioPlayer: NSObject { self.updateNowPlaying() } } - public func setPlaybackRate(_ rate: Float) { - if(self.audioPlayer.rate != rate) { + + public func setPlaybackRate(_ rate: Float, observed: Bool = false) { + if self.audioPlayer.rate != rate { self.audioPlayer.rate = rate } + if rate > 0.0 && !(observed && rate == 1) { + + print("yikes", self.rate, self.tmpRate) + self.tmpRate = rate + } + self.rate = rate self.updateNowPlaying() @@ -245,7 +256,7 @@ class AudioPlayer: NSObject { } } else if context == &playerContext { if keyPath == #keyPath(AVPlayer.rate) { - setPlaybackRate(change?[.newKey] as? Float ?? 1.0) + setPlaybackRate(change?[.newKey] as? Float ?? 1.0, observed: true) } else if keyPath == #keyPath(AVPlayer.currentItem) { NSLog("WARNING: Item ended") }