From f0ace30d57dc339cfd9ae7d8246ea537d3cdd0b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Recep=20Tayyip=20Ek=C5=9Fi?= Date: Thu, 27 Aug 2026 13:45:40 +0300 Subject: [PATCH] docs(audio-recorder): note that Android AEC also needs the playback path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The full-duplex section presents androidInputPreset: 'voiceCommunication' plus iosVoiceProcessing: true as what such an app needs. On Android that is only the capture half: the platform AEC cancels against the voice-communication OUTPUT path, and AudioContext playback defaults to USAGE_MEDIA, so on some devices the app's own output still reaches the microphone. Adds a caution pointing at #1254, where that is being tracked, and a testing note — headphones remove the acoustic path and hide the problem entirely, which makes a broken setup look fixed. Refs #1254 --- .../audiodocs/docs/inputs/audio-recorder.mdx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/audiodocs/docs/inputs/audio-recorder.mdx b/packages/audiodocs/docs/inputs/audio-recorder.mdx index 1c7c5b8b2..b512b4f73 100644 --- a/packages/audiodocs/docs/inputs/audio-recorder.mdx +++ b/packages/audiodocs/docs/inputs/audio-recorder.mdx @@ -371,6 +371,23 @@ const audioRecorder = new AudioRecorder({ }); ``` +:::caution Android: the playback side matters too + +On Android the platform AEC engaged by `voiceCommunication` cancels against the +**voice-communication output path**. Playback started from an `AudioContext` +does not sit on that path — it defaults to `USAGE_MEDIA` — so on some devices +the app's own output can still leak into the capture even with the input preset +set correctly. + +If you are building barge-in style interaction and still hear the app +transcribe itself, this is the likely cause. Progress is tracked in +[#1254](https://github.com/software-mansion/react-native-audio-api/issues/1254). + +Testing note: verify through the **loudspeaker**, never headphones. Headphones +remove the acoustic path entirely and hide the problem. + +::: + ## Properties | Name | Type | Description |