mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2025-07-28 22:54:39 +02:00
Refactor AudioPlayer to use an AudioPlayerRateManager protocol for managing rate/defaultRate state management. Implements a LegacyAudioPlayerRateManager implementation with existing (pre-iOS 16) behavior.
This commit is contained in:
parent
bcb239efd1
commit
edb25f5bcd
5 changed files with 121 additions and 36 deletions
23
ios/App/Shared/player/AudioPlayerRateManager.swift
Normal file
23
ios/App/Shared/player/AudioPlayerRateManager.swift
Normal file
|
@ -0,0 +1,23 @@
|
|||
//
|
||||
// AudioPlayerRateManager.swift
|
||||
// Audiobookshelf
|
||||
//
|
||||
// Created by Marke Hallowell on 4/14/24.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import AVFoundation
|
||||
|
||||
protocol AudioPlayerRateManager {
|
||||
var rate: Float { get }
|
||||
var defaultRate: Float { get }
|
||||
var rateChangedCompletion: () -> Void { get set }
|
||||
var defaultRateChangedCompletion: () -> Void { get set }
|
||||
|
||||
init(audioPlayer: AVPlayer, defaultRate: Float)
|
||||
|
||||
func setPlaybackRate(_ rate: Float)
|
||||
|
||||
// Callback for play events (e.g. LegacyAudioPlayerRateManager uses this set rate immediately after playback resumes)
|
||||
func handlePlayEvent() -> Void
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue