mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2025-08-28 22:08:47 +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
|
// enums and @objc are not compatible
|
||||||
@objc dynamic var status: Int
|
@objc dynamic var status: Int
|
||||||
@objc dynamic var rate: Float
|
@objc dynamic var rate: Float
|
||||||
|
private var tmpRate: Float = 1.0
|
||||||
|
|
||||||
private var playerContext = 0
|
private var playerContext = 0
|
||||||
private var playerItemContext = 0
|
private var playerItemContext = 0
|
||||||
|
@ -71,7 +72,10 @@ class AudioPlayer: NSObject {
|
||||||
public func play() {
|
public func play() {
|
||||||
self.audioPlayer.play()
|
self.audioPlayer.play()
|
||||||
self.status = 1
|
self.status = 1
|
||||||
self.rate = 1.0
|
self.rate = self.tmpRate
|
||||||
|
self.audioPlayer.rate = self.tmpRate
|
||||||
|
|
||||||
|
print("oof", self.rate, self.tmpRate)
|
||||||
|
|
||||||
updateNowPlaying()
|
updateNowPlaying()
|
||||||
}
|
}
|
||||||
|
@ -97,10 +101,17 @@ class AudioPlayer: NSObject {
|
||||||
self.updateNowPlaying()
|
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
|
self.audioPlayer.rate = rate
|
||||||
}
|
}
|
||||||
|
if rate > 0.0 && !(observed && rate == 1) {
|
||||||
|
|
||||||
|
print("yikes", self.rate, self.tmpRate)
|
||||||
|
self.tmpRate = rate
|
||||||
|
}
|
||||||
|
|
||||||
self.rate = rate
|
self.rate = rate
|
||||||
|
|
||||||
self.updateNowPlaying()
|
self.updateNowPlaying()
|
||||||
|
@ -245,7 +256,7 @@ class AudioPlayer: NSObject {
|
||||||
}
|
}
|
||||||
} else if context == &playerContext {
|
} else if context == &playerContext {
|
||||||
if keyPath == #keyPath(AVPlayer.rate) {
|
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) {
|
} else if keyPath == #keyPath(AVPlayer.currentItem) {
|
||||||
NSLog("WARNING: Item ended")
|
NSLog("WARNING: Item ended")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue