From 3c6f29bf3a054c3259fea2363cbc143dbbe188a8 Mon Sep 17 00:00:00 2001 From: ronaldheft Date: Fri, 26 Aug 2022 19:11:55 -0400 Subject: [PATCH] Fix time observer crashing when already on main thread --- ios/App/Shared/player/AudioPlayer.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/App/Shared/player/AudioPlayer.swift b/ios/App/Shared/player/AudioPlayer.swift index 4287d897..fa301781 100644 --- a/ios/App/Shared/player/AudioPlayer.swift +++ b/ios/App/Shared/player/AudioPlayer.swift @@ -137,14 +137,14 @@ class AudioPlayer: NSObject { private func setupTimeObserver() { // Time observer should be configured on the main queue - DispatchQueue.main.sync { + DispatchQueue.runOnMainQueue { self.removeTimeObserver() let timeScale = CMTimeScale(NSEC_PER_SEC) // Rate will be different depending on playback speed, aim for 2 observations/sec let seconds = 0.5 * (self.rate > 0 ? self.rate : 1.0) let time = CMTime(seconds: Double(seconds), preferredTimescale: timeScale) - self.timeObserverToken = self.audioPlayer.addPeriodicTimeObserver(forInterval: time, queue: queue) { [weak self] time in + self.timeObserverToken = self.audioPlayer.addPeriodicTimeObserver(forInterval: time, queue: self.queue) { [weak self] time in Task { // Let the player update the current playback positions await PlayerProgress.shared.syncFromPlayer(currentTime: time.seconds, includesPlayProgress: true, isStopping: false)