Skip to content

Commit

Permalink
Move code into main thread
Browse files Browse the repository at this point in the history
  • Loading branch information
jbaudanza committed Sep 16, 2024
1 parent 97e10b7 commit 491faa1
Showing 1 changed file with 19 additions and 16 deletions.
35 changes: 19 additions & 16 deletions ios/RNAudioRecorderPlayer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -334,15 +334,15 @@ class RNAudioRecorderPlayer: RCTEventEmitter, AVAudioRecorderDelegate {
let time = CMTime(seconds: subscriptionDuration, preferredTimescale: timeScale)

timeObserverToken = audioPlayer.addPeriodicTimeObserver(forInterval: time,
queue: .main) {_ in
if (self.audioPlayer != nil) {
self.sendEvent(withName: "rn-playback", body: [
"isMuted": self.audioPlayer.isMuted,
"currentPosition": self.audioPlayerItem.currentTime().seconds * 1000,
"duration": self.audioPlayerItem.asset.duration.seconds * 1000,
"isFinished": false,
])
}
queue: .main) {[weak self] _ in
guard let self = self, let audioPlayer = self.audioPlayer else { return }

self.sendEvent(withName: "rn-playback", body: [
"isMuted": audioPlayer.isMuted,
"currentPosition": self.audioPlayerItem.currentTime().seconds * 1000,
"duration": self.audioPlayerItem.asset.duration.seconds * 1000,
"isFinished": false,
])
}
}

Expand Down Expand Up @@ -371,6 +371,7 @@ class RNAudioRecorderPlayer: RCTEventEmitter, AVAudioRecorderDelegate {
}

setAudioFileURL(path: path)

audioPlayerAsset = AVURLAsset(url: audioFileURL!, options:["AVURLAssetHTTPHeaderFieldsKey": httpHeaders])
audioPlayerItem = AVPlayerItem(asset: audioPlayerAsset!)

Expand Down Expand Up @@ -404,15 +405,17 @@ class RNAudioRecorderPlayer: RCTEventEmitter, AVAudioRecorderDelegate {
resolve: @escaping RCTPromiseResolveBlock,
rejecter reject: @escaping RCTPromiseRejectBlock
) -> Void {
if (audioPlayer == nil) {
return reject("RNAudioPlayerRecorder", "Player has already stopped.", nil)
}
DispatchQueue.main.async {
if (self.audioPlayer == nil) {
return reject("RNAudioPlayerRecorder", "Player has already stopped.", nil)
}

audioPlayer.pause()
self.removePeriodicTimeObserver()
self.audioPlayer = nil;
self.audioPlayer.pause()
self.removePeriodicTimeObserver()
self.audioPlayer = nil;

resolve(audioFileURL?.absoluteString)
resolve(self.audioFileURL?.absoluteString)
}
}

@objc(pausePlayer:rejecter:)
Expand Down

0 comments on commit 491faa1

Please sign in to comment.