Voice message recording enhancements (#2042)

* Use Combine to report AudioRecorder state changes

* AudioRecorder is now using AVAudioEngine instead of AVAudioRecorder

* Stop recording when audio configuration changes

* AudioRecorder error handling

* UnitTests

* Use Accelerate to calculate RMS
This commit is contained in:
Nicolas Mauri
2023-11-08 10:19:28 +01:00
committed by GitHub
parent 14e0eba914
commit e04a55eaef
13 changed files with 817 additions and 269 deletions
@@ -34,7 +34,7 @@ class AudioRecorderStateTests: XCTestCase {
audioRecorderMock.isRecording = false
audioRecorderMock.underlyingActions = audioRecorderActions
audioRecorderMock.currentTime = 0.0
audioRecorderMock.averagePowerForChannelNumberReturnValue = 0
audioRecorderMock.averagePowerReturnValue = 0
return audioRecorderMock
}
@@ -59,7 +59,7 @@ class AudioRecorderStateTests: XCTestCase {
func testReportError() async throws {
XCTAssertEqual(audioRecorderState.recordingState, .stopped)
audioRecorderState.reportError(AudioRecorderError.genericError)
audioRecorderState.reportError(AudioRecorderError.audioEngineFailure)
XCTAssertEqual(audioRecorderState.recordingState, .error)
}