Fix issue with AVPlayer rate

This commit is contained in:
Arkadiusz Fal 2023-06-07 22:46:00 +02:00
parent 71b25afa28
commit c36dc67a72
2 changed files with 23 additions and 15 deletions

View File

@ -160,7 +160,7 @@ final class AVPlayerBackend: PlayerBackend {
return return
} }
avPlayer.play() avPlayer.playImmediately(atRate: Float(model.currentRate))
model.objectWillChange.send() model.objectWillChange.send()
} }
@ -642,10 +642,15 @@ final class AVPlayerBackend: PlayerBackend {
if player.timeControlStatus == .playing { if player.timeControlStatus == .playing {
self.model.objectWillChange.send() self.model.objectWillChange.send()
if player.rate != Float(self.model.currentRate) { if player.rate != Float(self.model.currentRate) {
if model.avPlayerUsesSystemControls {
self.model.currentRate = Double(player.rate)
} else {
player.rate = Float(self.model.currentRate) player.rate = Float(self.model.currentRate)
} }
} }
}
#if os(macOS) #if os(macOS)
if player.timeControlStatus == .playing { if player.timeControlStatus == .playing {

View File

@ -69,6 +69,7 @@ struct PlaybackSettings: View {
} }
.padding(.vertical, 10) .padding(.vertical, 10)
if player.activeBackend == .mpv || !player.avPlayerUsesSystemControls {
HStack { HStack {
controlsHeader("Rate".localized()) controlsHeader("Rate".localized())
Spacer() Spacer()
@ -84,6 +85,8 @@ struct PlaybackSettings: View {
#endif #endif
} }
} }
}
if player.activeBackend == .mpv { if player.activeBackend == .mpv {
HStack { HStack {
controlsHeader("Captions".localized()) controlsHeader("Captions".localized())