Fix and add default video jump lengths
This commit is contained in:
parent
d1e3e08921
commit
114c070328
|
@ -1179,8 +1179,8 @@
|
|||
E10EAA48277BB6D7000269ED /* Overlays */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E1C812BB277A8E5D00918266 /* VLCPlayerCompactOverlayView.swift */,
|
||||
E10EAA49277BB6F5000269ED /* VideoPlayerOverlay.swift */,
|
||||
E1C812BB277A8E5D00918266 /* VLCPlayerCompactOverlayView.swift */,
|
||||
E1C812B7277A8E5D00918266 /* VLCPlayerOverlayView.swift */,
|
||||
);
|
||||
path = Overlays;
|
||||
|
@ -1309,10 +1309,10 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
E1C812B9277A8E5D00918266 /* NativePlayerViewController.swift */,
|
||||
E10EAA48277BB6D7000269ED /* Overlays */,
|
||||
E1C812B4277A8E5D00918266 /* PlaybackSpeed.swift */,
|
||||
E1C812B5277A8E5D00918266 /* PlayerOverlayDelegate.swift */,
|
||||
E1C812B8277A8E5D00918266 /* VideoPlayerView.swift */,
|
||||
E10EAA48277BB6D7000269ED /* Overlays */,
|
||||
E1C812B6277A8E5D00918266 /* VLCPlayerViewController.swift */,
|
||||
);
|
||||
path = VideoPlayer;
|
||||
|
|
|
@ -6,14 +6,17 @@
|
|||
//
|
||||
|
||||
import Combine
|
||||
import Defaults
|
||||
import JellyfinAPI
|
||||
import MobileVLCKit
|
||||
import Sliders
|
||||
import SwiftUI
|
||||
import JellyfinAPI
|
||||
|
||||
struct VLCPlayerCompactOverlayView: View, VideoPlayerOverlay {
|
||||
|
||||
@ObservedObject var viewModel: VideoPlayerViewModel
|
||||
@Default(.videoPlayerJumpForward) var jumpForwardLength
|
||||
@Default(.videoPlayerJumpBackward) var jumpBackwardLength
|
||||
|
||||
@ViewBuilder
|
||||
private var mainButtonView: some View {
|
||||
|
@ -192,7 +195,7 @@ struct VLCPlayerCompactOverlayView: View, VideoPlayerOverlay {
|
|||
Button {
|
||||
viewModel.playerOverlayDelegate?.didSelectBackward()
|
||||
} label: {
|
||||
Image(systemName: "gobackward.10")
|
||||
Image(systemName: jumpBackwardLength.backwardImageLabel)
|
||||
.padding(.horizontal, 5)
|
||||
}
|
||||
|
||||
|
@ -207,7 +210,7 @@ struct VLCPlayerCompactOverlayView: View, VideoPlayerOverlay {
|
|||
Button {
|
||||
viewModel.playerOverlayDelegate?.didSelectForward()
|
||||
} label: {
|
||||
Image(systemName: "goforward.10")
|
||||
Image(systemName: jumpForwardLength.forwardImageLabel)
|
||||
.padding(.horizontal, 5)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
import AVKit
|
||||
import AVFoundation
|
||||
import Combine
|
||||
import Defaults
|
||||
import JellyfinAPI
|
||||
import MediaPlayer
|
||||
import MobileVLCKit
|
||||
|
@ -32,6 +33,14 @@ class VLCPlayerViewController: UIViewController {
|
|||
return overlayHostingController.view.alpha > 0
|
||||
}
|
||||
|
||||
private var jumpForwardLength: VideoPlayerJumpLength {
|
||||
return Defaults[.videoPlayerJumpForward]
|
||||
}
|
||||
|
||||
private var jumpBackwardLength: VideoPlayerJumpLength {
|
||||
return Defaults[.videoPlayerJumpBackward]
|
||||
}
|
||||
|
||||
private lazy var videoContentView = makeVideoContentView()
|
||||
private lazy var tapGestureView = makeTapGestureView()
|
||||
private lazy var overlayHostingController = makeOverlayHostingController()
|
||||
|
@ -283,7 +292,7 @@ extension VLCPlayerViewController {
|
|||
// MARK: OverlayTimer
|
||||
extension VLCPlayerViewController {
|
||||
|
||||
private func restartOverlayDismissTimer(interval: Double = 2) {
|
||||
private func restartOverlayDismissTimer(interval: Double = 3) {
|
||||
self.overlayDismissTimer?.invalidate()
|
||||
self.overlayDismissTimer = Timer.scheduledTimer(timeInterval: interval, target: self, selector: #selector(dismissTimerFired), userInfo: nil, repeats: false)
|
||||
}
|
||||
|
@ -304,8 +313,6 @@ extension VLCPlayerViewController: VLCMediaPlayerDelegate {
|
|||
func mediaPlayerStateChanged(_ aNotification: Notification!) {
|
||||
|
||||
self.viewModel.playerState = vlcMediaPlayer.state
|
||||
|
||||
print("Player state changed: \(viewModel.playerState.rawValue)")
|
||||
}
|
||||
|
||||
func mediaPlayerTimeChanged(_ aNotification: Notification!) {
|
||||
|
@ -337,7 +344,6 @@ extension VLCPlayerViewController: PlayerOverlayDelegate {
|
|||
|
||||
func didSelectAudioStream(index: Int) {
|
||||
vlcMediaPlayer.currentAudioTrackIndex = Int32(index)
|
||||
print("New audio index: \(index)")
|
||||
}
|
||||
|
||||
func didSelectSubtitleStream(index: Int) {
|
||||
|
@ -347,7 +353,6 @@ extension VLCPlayerViewController: PlayerOverlayDelegate {
|
|||
// set in case weren't shown
|
||||
viewModel.subtitlesEnabled = true
|
||||
}
|
||||
print("New subtitle index: \(index)")
|
||||
}
|
||||
|
||||
func didSelectClose() {
|
||||
|
@ -388,13 +393,13 @@ extension VLCPlayerViewController: PlayerOverlayDelegate {
|
|||
}
|
||||
|
||||
func didSelectBackward() {
|
||||
vlcMediaPlayer.jumpBackward(10)
|
||||
vlcMediaPlayer.jumpBackward(jumpBackwardLength.rawValue)
|
||||
|
||||
restartOverlayDismissTimer()
|
||||
}
|
||||
|
||||
func didSelectForward() {
|
||||
vlcMediaPlayer.jumpForward(10)
|
||||
vlcMediaPlayer.jumpForward(jumpForwardLength.rawValue)
|
||||
|
||||
restartOverlayDismissTimer()
|
||||
}
|
||||
|
@ -443,7 +448,5 @@ extension VLCPlayerViewController: PlayerOverlayDelegate {
|
|||
}
|
||||
|
||||
restartOverlayDismissTimer()
|
||||
|
||||
print("Scrubbed position: \(position)")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,40 +19,30 @@ enum VideoPlayerJumpLength: Int32, CaseIterable, Defaults.Serializable {
|
|||
var label: String {
|
||||
return "\(self.rawValue) seconds"
|
||||
}
|
||||
|
||||
func generateForwardImage(with font: UIFont) -> UIImage {
|
||||
let config = UIImage.SymbolConfiguration(font: font)
|
||||
let systemName: String
|
||||
|
||||
|
||||
var forwardImageLabel: String {
|
||||
switch self {
|
||||
case .thirty:
|
||||
systemName = "goforward.30"
|
||||
return "goforward.30"
|
||||
case .fifteen:
|
||||
systemName = "goforward.15"
|
||||
return "goforward.15"
|
||||
case .ten:
|
||||
systemName = "goforward.10"
|
||||
return "goforward.10"
|
||||
case .five:
|
||||
systemName = "goforward.5"
|
||||
return "goforward.5"
|
||||
}
|
||||
|
||||
return UIImage(systemName: systemName, withConfiguration: config)!
|
||||
}
|
||||
|
||||
func generateBackwardImage(with font: UIFont) -> UIImage {
|
||||
let config = UIImage.SymbolConfiguration(font: font)
|
||||
let systemName: String
|
||||
|
||||
|
||||
var backwardImageLabel: String {
|
||||
switch self {
|
||||
case .thirty:
|
||||
systemName = "gobackward.30"
|
||||
return "gobackward.30"
|
||||
case .fifteen:
|
||||
systemName = "gobackward.15"
|
||||
return "gobackward.15"
|
||||
case .ten:
|
||||
systemName = "gobackward.10"
|
||||
return "gobackward.10"
|
||||
case .five:
|
||||
systemName = "gobackward.5"
|
||||
return "gobackward.5"
|
||||
}
|
||||
|
||||
return UIImage(systemName: systemName, withConfiguration: config)!
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue