Fix playback

This commit is contained in:
Aiden Vigue 2021-05-27 10:49:17 -04:00
parent b4dcfcc425
commit 4e5a810047
No known key found for this signature in database
GPG Key ID: E7570472648F4544
1 changed files with 16 additions and 19 deletions

View File

@ -158,12 +158,21 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe
//View has loaded. //View has loaded.
//Show loading screen //Show loading screen
usleep(10000);
delegate?.showLoadingView(self) delegate?.showLoadingView(self)
mediaPlayer.perform(Selector(("setTextRendererFontSize:")), with: 14) mediaPlayer.perform(Selector(("setTextRendererFontSize:")), with: 14)
//mediaPlayer.wrappedValue.perform(Selector(("setTextRendererFont:")), with: "Copperplate") //mediaPlayer.wrappedValue.perform(Selector(("setTextRendererFont:")), with: "Copperplate")
mediaPlayer.delegate = self
mediaPlayer.drawable = videoContentView
if(manifest.Type == "Episode") {
titleLabel.text = "\(manifest.Name) - S\(String(manifest.ParentIndexNumber ?? 0)):E\(String(manifest.IndexNumber ?? 0)) - \(manifest.SeriesName ?? "")"
} else {
titleLabel.text = manifest.Name
}
//Fetch max bitrate from UserDefaults depending on current connection mode //Fetch max bitrate from UserDefaults depending on current connection mode
let defaults = UserDefaults.standard let defaults = UserDefaults.standard
let maxBitrate = globalData.isInNetwork ? defaults.integer(forKey: "InNetworkBandwidth") : defaults.integer(forKey: "OutOfNetworkBandwidth") let maxBitrate = globalData.isInNetwork ? defaults.integer(forKey: "InNetworkBandwidth") : defaults.integer(forKey: "OutOfNetworkBandwidth")
@ -258,8 +267,9 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe
sendPlayReport() sendPlayReport()
playbackItem = item; playbackItem = item;
} }
mediaPlayer.stop()
DispatchQueue.global(qos: .background).async { DispatchQueue.global(qos: .background).async {
mediaPlayer.media = VLCMedia(url: playbackItem.videoUrl)
mediaPlayer.play() mediaPlayer.play()
subtitleTrackArray.forEach() { sub in subtitleTrackArray.forEach() { sub in
if(sub.id != -1 && sub.delivery == "External" && sub.codec != "subrip") { if(sub.id != -1 && sub.delivery == "External" && sub.codec != "subrip") {
@ -267,13 +277,11 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe
mediaPlayer.addPlaybackSlave(sub.url, type: .subtitle, enforce: false) mediaPlayer.addPlaybackSlave(sub.url, type: .subtitle, enforce: false)
} }
} }
mediaPlayer.pause()
delegate?.showLoadingView(self)
sleep(3) sleep(3)
mediaPlayer.pause() mediaPlayer.pause()
usleep(10000);
mediaPlayer.play()
mediaPlayer.currentVideoSubTitleIndex = selectedCaptionTrack; mediaPlayer.currentVideoSubTitleIndex = selectedCaptionTrack;
mediaPlayer.pause()
usleep(10000);
mediaPlayer.play() mediaPlayer.play()
mediaPlayer.jumpForward(Int32(manifest.Progress/10000000)) mediaPlayer.jumpForward(Int32(manifest.Progress/10000000))
} }
@ -286,15 +294,6 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe
break break
} }
} }
mediaPlayer.delegate = self
mediaPlayer.drawable = videoContentView
if(manifest.Type == "Episode") {
titleLabel.text = "\(manifest.Name) - S\(String(manifest.ParentIndexNumber ?? 0)):E\(String(manifest.IndexNumber ?? 0)) - \(manifest.SeriesName ?? "")"
} else {
titleLabel.text = manifest.Name
}
} }
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
@ -308,11 +307,9 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe
let currentState: VLCMediaPlayerState = mediaPlayer.state let currentState: VLCMediaPlayerState = mediaPlayer.state
switch currentState { switch currentState {
case .stopped : case .stopped :
print("Video is done playing)") break;
sendStopReport()
case .ended : case .ended :
print("Video is done playing)") break;
sendStopReport()
case .playing : case .playing :
print("Video is playing") print("Video is playing")
sendProgressReport(eventName: "unpause") sendProgressReport(eventName: "unpause")