From 4b26d9844a141aacb584bdce65f2dcecb23bdd36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20S=C4=99k?= Date: Fri, 6 Feb 2026 17:09:04 +0100 Subject: [PATCH 1/2] fix: actually record in record example, more cleanups --- .../common-app/src/examples/Record/Record.tsx | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/apps/common-app/src/examples/Record/Record.tsx b/apps/common-app/src/examples/Record/Record.tsx index a2addeb79..698524dbf 100644 --- a/apps/common-app/src/examples/Record/Record.tsx +++ b/apps/common-app/src/examples/Record/Record.tsx @@ -89,6 +89,7 @@ const Record: FC = () => { /// This stops only the recording, not the audio context const stopEcho = async () => { audioRecorder.stop(); + audioContext.suspend(); audioRecorder.disconnect(); setStatus(Status.Idle); @@ -109,7 +110,7 @@ const Record: FC = () => { AudioManager.setAudioSessionOptions({ iosCategory: 'playAndRecord', iosMode: 'default', - iosOptions: ['defaultToSpeaker', 'allowBluetoothA2DP'], + iosOptions: ['allowBluetoothA2DP', 'allowBluetoothHFP'], }); const success = await AudioManager.setAudioSessionActivity(true); @@ -146,6 +147,16 @@ const Record: FC = () => { return; } + const result = audioRecorder.start(); + + if (result.status === 'error') { + Alert.alert( + 'Recording Error', + `Failed to start recording: ${result.message}` + ); + return; + } + setStatus(Status.Recording); setTimeout(async () => { @@ -174,11 +185,12 @@ const Record: FC = () => { } if (audioContext.state === 'suspended') { - audioContext.resume(); + await audioContext.resume(); } const tNow = audioContext.currentTime; let nextStartAt = tNow + 1; + await new Promise((resolve) => setTimeout(resolve, 1000)); capturedBuffers.forEach((buffer) => { const source = audioContext.createBufferSource(); @@ -191,7 +203,9 @@ const Record: FC = () => { setStatus(Status.Playback); setTimeout( - () => { + async () => { + await audioContext.suspend(); + await AudioManager.setAudioSessionActivity(false); setStatus(Status.Idle); }, (nextStartAt - tNow) * 1000 From 0a42d1aaa70c3f29a437f4cda3722628a1371a16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20S=C4=99k?= Date: Fri, 6 Feb 2026 17:10:05 +0100 Subject: [PATCH 2/2] fix: cleanup timeout --- apps/common-app/src/examples/Record/Record.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/common-app/src/examples/Record/Record.tsx b/apps/common-app/src/examples/Record/Record.tsx index 698524dbf..2ebd4ff8e 100644 --- a/apps/common-app/src/examples/Record/Record.tsx +++ b/apps/common-app/src/examples/Record/Record.tsx @@ -190,7 +190,6 @@ const Record: FC = () => { const tNow = audioContext.currentTime; let nextStartAt = tNow + 1; - await new Promise((resolve) => setTimeout(resolve, 1000)); capturedBuffers.forEach((buffer) => { const source = audioContext.createBufferSource();