mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2025-08-04 01:54:33 +02:00
Memorize playback rate
This commit is contained in:
parent
f76128c2b3
commit
926c17543f
1 changed files with 15 additions and 4 deletions
|
@ -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")
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue