diff --git a/JellyfinPlayer/VideoPlayer.swift b/JellyfinPlayer/VideoPlayer.swift index 979f7aec..f5cd4a46 100644 --- a/JellyfinPlayer/VideoPlayer.swift +++ b/JellyfinPlayer/VideoPlayer.swift @@ -297,6 +297,12 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe HandleAPIRequestCompletion(globalData: self.globalData, completion: completion) }, receiveValue: { [self] response in playSessionId = response.playSessionId ?? "" + + if(response.mediaSources == nil) { + delegate?.exitPlayer(self) + return + } + let mediaSource = response.mediaSources!.first.self! if mediaSource.transcodingUrl != nil { // Item is being transcoded by request of server @@ -496,7 +502,7 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe self.videoControlsView.isHidden = true self.videoControlsView.alpha = 1 }) - controlsAppearTime = 10000000000000000000000 + controlsAppearTime = 999_999_999_999_999 } } else { paused = true diff --git a/Shared/Extensions/APIExtensions.swift b/Shared/Extensions/APIExtensions.swift index 1472e73e..13df0c9f 100644 --- a/Shared/Extensions/APIExtensions.swift +++ b/Shared/Extensions/APIExtensions.swift @@ -107,7 +107,7 @@ extension BaseItemDto { // MARK: Calculations func getItemRuntime() -> String { - let seconds: Int = Int(self.runTimeTicks!) / 10_000_000 + let seconds: Int = Int(self.runTimeTicks ?? 0) / 10_000_000 let hours = (seconds / 3600) let minutes = ((seconds - (hours * 3600)) / 60) if hours != 0 { @@ -122,7 +122,7 @@ extension BaseItemDto { return "" } - let remainingSecs = Int(self.runTimeTicks! - (self.userData?.playbackPositionTicks!)!) / 10_000_000 + let remainingSecs = Int(self.runTimeTicks ?? 0 - (self.userData?.playbackPositionTicks ?? 0)) / 10_000_000 let proghours = Int(remainingSecs / 3600) let progminutes = Int((Int(remainingSecs) - (proghours * 3600)) / 60) if proghours != 0 {