mirror of
https://github.com/cranci1/Sora.git
synced 2026-03-11 17:45:37 +00:00
yeah idk tf is ts 😭
This commit is contained in:
parent
a348c9a63a
commit
1692ac2c3d
1 changed files with 59 additions and 12 deletions
|
|
@ -422,20 +422,70 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele
|
|||
}
|
||||
|
||||
deinit {
|
||||
playerRateObserver?.invalidate()
|
||||
inactivityTimer?.invalidate()
|
||||
inactivityTimer = nil
|
||||
updateTimer?.invalidate()
|
||||
updateTimer = nil
|
||||
lockButtonTimer?.invalidate()
|
||||
lockButtonTimer = nil
|
||||
dimButtonTimer?.invalidate()
|
||||
loadedTimeRangesObservation?.invalidate()
|
||||
playerTimeControlStatusObserver?.invalidate()
|
||||
volumeObserver?.invalidate()
|
||||
dimButtonTimer = nil
|
||||
|
||||
player.replaceCurrentItem(with: nil)
|
||||
player.pause()
|
||||
playerRateObserver?.invalidate()
|
||||
playerRateObserver = nil
|
||||
loadedTimeRangesObservation?.invalidate()
|
||||
loadedTimeRangesObservation = nil
|
||||
playerTimeControlStatusObserver?.invalidate()
|
||||
playerTimeControlStatusObserver = nil
|
||||
volumeObserver?.invalidate()
|
||||
volumeObserver = nil
|
||||
|
||||
NotificationCenter.default.removeObserver(self)
|
||||
if let token = timeObserverToken {
|
||||
player?.removeTimeObserver(token)
|
||||
timeObserverToken = nil
|
||||
}
|
||||
|
||||
player?.replaceCurrentItem(with: nil)
|
||||
player?.pause()
|
||||
player = nil
|
||||
|
||||
if let playerVC = playerViewController {
|
||||
playerVC.willMove(toParent: nil)
|
||||
playerVC.view.removeFromSuperview()
|
||||
playerVC.removeFromParent()
|
||||
}
|
||||
|
||||
if let sliderHost = sliderHostingController {
|
||||
sliderHost.willMove(toParent: nil)
|
||||
sliderHost.view.removeFromSuperview()
|
||||
sliderHost.removeFromParent()
|
||||
}
|
||||
|
||||
playerViewController = nil
|
||||
sliderHostingController = nil
|
||||
volumeSliderHostingView = nil
|
||||
|
||||
volumeSliderHostingView?.removeFromSuperview()
|
||||
hiddenVolumeView.removeFromSuperview()
|
||||
subtitleStackView?.removeFromSuperview()
|
||||
marqueeLabel?.removeFromSuperview()
|
||||
controlsContainerView?.removeFromSuperview()
|
||||
blackCoverView?.removeFromSuperview()
|
||||
skipIntroButton?.removeFromSuperview()
|
||||
skipOutroButton?.removeFromSuperview()
|
||||
skip85Button?.removeFromSuperview()
|
||||
pipButton?.removeFromSuperview()
|
||||
airplayButton?.removeFromSuperview()
|
||||
menuButton?.removeFromSuperview()
|
||||
speedButton?.removeFromSuperview()
|
||||
qualityButton?.removeFromSuperview()
|
||||
holdSpeedIndicator?.removeFromSuperview()
|
||||
lockButton?.removeFromSuperview()
|
||||
dimButton?.removeFromSuperview()
|
||||
dismissButton?.removeFromSuperview()
|
||||
watchNextButton?.removeFromSuperview()
|
||||
|
||||
try? AVAudioSession.sharedInstance().setActive(false)
|
||||
}
|
||||
|
||||
|
|
@ -1471,9 +1521,7 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele
|
|||
|
||||
func addTimeObserver() {
|
||||
let interval = CMTime(seconds: 1.0, preferredTimescale: CMTimeScale(NSEC_PER_SEC))
|
||||
timeObserverToken = player.addPeriodicTimeObserver(forInterval: interval,
|
||||
queue: .main)
|
||||
{ [weak self] time in
|
||||
timeObserverToken = player.addPeriodicTimeObserver(forInterval: interval, queue: .main) { [weak self] time in
|
||||
guard let self = self,
|
||||
let currentItem = self.player.currentItem,
|
||||
currentItem.duration.seconds.isFinite else { return }
|
||||
|
|
@ -1520,7 +1568,8 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele
|
|||
|
||||
let segmentsColor = self.getSegmentsColor()
|
||||
|
||||
DispatchQueue.main.async {
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
guard let self = self else { return }
|
||||
if let currentItem = self.player.currentItem, currentItem.duration.seconds > 0 {
|
||||
let progress = min(max(self.currentTimeVal / self.duration, 0), 1.0)
|
||||
|
||||
|
|
@ -1541,7 +1590,6 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele
|
|||
ContinueWatchingManager.shared.save(item: item)
|
||||
}
|
||||
|
||||
|
||||
let remainingPercentage = (self.duration - self.currentTimeVal) / self.duration
|
||||
|
||||
if remainingPercentage < 0.1 &&
|
||||
|
|
@ -1603,7 +1651,6 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
func startUpdateTimer() {
|
||||
updateTimer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { [weak self] _ in
|
||||
guard let self = self else { return }
|
||||
|
|
|
|||
Loading…
Reference in a new issue