added playback speed saving
Some checks are pending
Build and Release IPA / Build IPA (push) Waiting to run

This commit is contained in:
cranci1 2025-02-08 16:04:41 +01:00
parent 2bd37b50a4
commit 83583fb27f
3 changed files with 27 additions and 4 deletions

View file

@ -15,6 +15,7 @@ class NormalPlayer: AVPlayerViewController {
super.viewDidLoad()
setupHoldGesture()
setupAudioSession()
setInitialPlayerRate()
}
private func setupHoldGesture() {
@ -58,4 +59,22 @@ class NormalPlayer: AVPlayerViewController {
Logger.shared.log("Failed to set up AVAudioSession: \(error)")
}
}
}
private func setInitialPlayerRate() {
if UserDefaults.standard.bool(forKey: "rememberPlaySpeed") {
let lastPlayedSpeed = UserDefaults.standard.float(forKey: "lastPlayedSpeed")
player?.rate = lastPlayedSpeed > 0 ? lastPlayedSpeed : 1.0
}
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
saveCurrentPlayerRate()
}
private func saveCurrentPlayerRate() {
if UserDefaults.standard.bool(forKey: "rememberPlaySpeed"), let player = player {
UserDefaults.standard.set(player.rate, forKey: "lastPlayedSpeed")
}
}
}

View file

@ -97,7 +97,7 @@ class VideoPlayerViewController: UIViewController {
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
if UserDefaults.standard.bool(forKey: "AlwaysLandscape") {
if UserDefaults.standard.bool(forKey: "alwaysLandscape") {
return .landscape
} else {
return .all

View file

@ -9,8 +9,9 @@ import SwiftUI
struct SettingsViewPlayer: View {
@AppStorage("externalPlayer") private var externalPlayer: String = "Default"
@AppStorage("AlwaysLandscape") private var isAlwaysLandscape = false
@AppStorage("alwaysLandscape") private var isAlwaysLandscape = false
@AppStorage("hideNextButton") private var isHideNextButton = false
@AppStorage("rememberPlaySpeed") private var isRememberPlaySpeed = false
@AppStorage("holdSpeedPlayer") private var holdSpeedPlayer: Double = 2.0
private let mediaPlayers = ["Default", "VLC", "OutPlayer", "Infuse", "nPlayer", "Sora"]
@ -38,6 +39,9 @@ struct SettingsViewPlayer: View {
Toggle("Force Landscape", isOn: $isAlwaysLandscape)
.tint(.accentColor)
Toggle("Remember Playback speed", isOn: $isRememberPlaySpeed)
.tint(.accentColor)
HStack {
Text("Hold Speed:")
Spacer()
@ -53,4 +57,4 @@ struct SettingsViewPlayer: View {
}
.navigationTitle("Player")
}
}
}