mirror of
https://github.com/cranci1/Sora.git
synced 2026-03-11 17:45:37 +00:00
added playback speed saving
Some checks are pending
Build and Release IPA / Build IPA (push) Waiting to run
Some checks are pending
Build and Release IPA / Build IPA (push) Waiting to run
This commit is contained in:
parent
2bd37b50a4
commit
83583fb27f
3 changed files with 27 additions and 4 deletions
|
|
@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue