Add more playback rates for MPV

This commit is contained in:
Arkadiusz Fal
2022-11-10 23:19:34 +01:00
parent a44cce462a
commit 01d8e28d7c
6 changed files with 25 additions and 5 deletions

View File

@@ -21,6 +21,14 @@ final class AVPlayerBackend: PlayerBackend {
var stream: Stream?
var video: Video?
var suggestedPlaybackRates: [Double] {
[0.5, 0.67, 0.8, 1, 1.25, 1.5, 2]
}
func canPlayAtRate(_ rate: Double) -> Bool {
suggestedPlaybackRates.contains(rate)
}
var currentTime: CMTime? {
avPlayer.currentTime()
}

View File

@@ -92,6 +92,14 @@ final class MPVBackend: PlayerBackend {
internal var controlsUpdates = false
private var timeObserverThrottle = Throttle(interval: 2)
var suggestedPlaybackRates: [Double] {
[0.1, 0.25, 0.3, 0.33, 0.5, 0.67, 0.8, 1, 1.25, 1.5, 1.75, 2, 3, 4]
}
func canPlayAtRate(_ rate: Double) -> Bool {
rate > 0 && rate <= 100
}
var tracks: Int {
client?.tracksCount ?? -1
}

View File

@@ -6,6 +6,7 @@ import Foundation
#endif
protocol PlayerBackend {
var suggestedPlaybackRates: [Double] { get }
var model: PlayerModel! { get }
var controls: PlayerControlsModel! { get }
var playerTime: PlayerTimeModel! { get }
@@ -30,6 +31,7 @@ protocol PlayerBackend {
func bestPlayable(_ streams: [Stream], maxResolution: ResolutionSetting) -> Stream?
func canPlay(_ stream: Stream) -> Bool
func canPlayAtRate(_ rate: Double) -> Bool
func playStream(
_ stream: Stream,