From cd84d5f3fad344b573a1b2300f00cd8df1604eca Mon Sep 17 00:00:00 2001 From: Francesco <100066266+cranci1@users.noreply.github.com> Date: Sun, 8 Jun 2025 11:36:28 +0200 Subject: [PATCH] =?UTF-8?q?brooo=20come=20one=20=F0=9F=98=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CustomPlayer/CustomPlayer.swift | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift b/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift index 9310493..7f213bc 100644 --- a/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift +++ b/Sora/Utils/MediaPlayer/CustomPlayer/CustomPlayer.swift @@ -2159,6 +2159,18 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele let asset = AVURLAsset(url: url, options: ["AVURLAssetHTTPHeaderFieldsKey": request.allHTTPHeaderFields ?? [:]]) let playerItem = AVPlayerItem(asset: asset) + var audioApplied = false + let audioTrackToApply = lastSelectedAudioTrack + let observer = playerItem.observe(\.status, options: [.new]) { [weak self] item, change in + guard let self = self else { return } + if item.status == .readyToPlay, !audioApplied { + audioApplied = true + if let lastAudio = audioTrackToApply { + self.switchToAudioTrack(named: lastAudio) + } + } + } + player.replaceCurrentItem(with: playerItem) player.seek(to: currentTime) if wasPlaying { @@ -2174,10 +2186,8 @@ class CustomMediaPlayerViewController: UIViewController, UIGestureRecognizerDele DropManager.shared.showDrop(title: "Quality: \(selectedQuality)", subtitle: "", duration: 0.5, icon: UIImage(systemName: "eye")) } - if let lastAudio = lastSelectedAudioTrack { - DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { [weak self] in - self?.switchToAudioTrack(named: lastAudio) - } + DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) { + observer.invalidate() } }