Add some logs to allow debugging of voice messages in rageshake (#1967)

This commit is contained in:
Nicolas Mauri
2023-10-26 17:22:41 +02:00
committed by GitHub
parent 8a5986f9b0
commit aa766f2eac
5 changed files with 26 additions and 16 deletions
@@ -144,14 +144,19 @@ class AudioRecorder: NSObject, AudioRecorderProtocol, AVAudioRecorderDelegate {
try AVAudioSession.sharedInstance().setCategory(.playAndRecord, mode: .default)
try AVAudioSession.sharedInstance().setActive(true)
let url = URL.temporaryDirectory.appendingPathComponent("voice-message-\(recordID.identifier).m4a")
audioRecorder = try AVAudioRecorder(url: url, settings: settings)
audioRecorder?.delegate = self
audioRecorder?.isMeteringEnabled = true
audioRecorder?.record()
completion(.success(()))
let audioRecorder = try AVAudioRecorder(url: url, settings: settings)
audioRecorder.delegate = self
audioRecorder.isMeteringEnabled = true
if audioRecorder.record() {
self.audioRecorder = audioRecorder
completion(.success(()))
} else {
MXLog.error("audio recording failed to start")
completion(.failure(.recordingFailed))
}
} catch {
MXLog.error("audio recording failed: \(error)")
completion(.failure(.genericError))
MXLog.error("audio recording failed to start. \(error)")
completion(.failure(.internalError(error: error)))
}
}
}
@@ -187,12 +192,14 @@ class AudioRecorder: NSObject, AudioRecorderProtocol, AVAudioRecorderDelegate {
if success {
actionsSubject.send(.didStopRecording)
} else {
MXLog.error("audio recorder did finish recording with an error.")
actionsSubject.send(.didFailWithError(error: AudioRecorderError.genericError))
}
}
func audioRecorderEncodeErrorDidOccur(_ recorder: AVAudioRecorder, error: Error?) {
try? AVAudioSession.sharedInstance().setActive(false)
MXLog.error("audio recorder encode error did occur. \(error?.localizedDescription ?? "")")
actionsSubject.send(.didFailWithError(error: error ?? AudioRecorderError.genericError))
}
@@ -32,7 +32,9 @@ extension AudioRecordingIdentifier {
enum AudioRecorderError: Error {
case genericError
case internalError(error: Error)
case recordPermissionNotGranted
case recordingFailed
case recordingCancelled
}