NEW326286
REGRESSION (iOS 26.2 - 27): Audio output crackles while getUserMedia mic capture with echo cancellation is active
https://bugs.webkit.org/show_bug.cgi?id=326286
Summary REGRESSION (iOS 26.2 - 27): Audio output crackles while getUserMedia mic capt...
Donal
Reported 2026-10-04 15:46:45 PDT
On iOS 27, any audio a page plays while a getUserMedia microphone stream with echoCancellation: true is open crackles audibly (several sharp clicks per few seconds, sometimes continuous). Affects Web Audio (AudioBufferSourceNode) and a plain <audio> element alike. Same page is clean on iOS 18.7. Steps to reproduce: 1. On an iPhone running iOS 27, open https://selftapepal.app/audio-test.html in Safari (a bare test page; set "Sound" to Tone for a pure 440 Hz tone). 2. Tap "1. No mic": tone plays cleanly from the loudspeaker. 3. Close all Safari tabs, reopen the page, tap "2. Mic open, echo cancellation ON": the same tone crackles. 4. Close all tabs, reopen, tap "3. Mic open, echo cancellation OFF": clean, but output moves to the receiver (earpiece) at much lower volume. Expected: playback with an open echo-cancelled mic is clean, as on iOS 18.7. Actual: crackling on every playback while the mic is open with echo cancellation. Notes: - Reproduced on iPhone 16 (iOS 27.0.1) and three iPhone 17/18 Apple Store demo units on iOS 27. - Clean on iPhone SE (iOS 18.7). Not reproduced on macOS or Android. - Both AudioContexts and the mic report 48000 Hz; getSettings().echoCancellation === true. - latencyHint 'playback', a single shared context, and creating the context after the mic opens all still crackle. - Audio session state persists after the mic is released (even across reloads), so test from a fresh tab each time. - A native app using AVAudioSession .playAndRecord + .defaultToSpeaker without voice processing plays cleanly on the same device, which suggests the issue is in the voice-processing path WebKit uses for echo cancellation. - Possibly related: bug 311451 (degraded output quality with the microphone enabled, iOS 26.4). This report is a distinct, newer symptom: audible crackling, clean on iOS 18.7, first seen on iOS 27.
Attachments
iPhone SE, iOS 26.2: Test 2, clean (filmed from a second device) (48.61 MB, video/quicktime)
2026-10-09 05:16 PDT, Donal
no flags
iPhone 16, iOS 27.0.1: Test 2, crackling throughout (filmed from a second device) (37.99 MB, video/quicktime)
2026-10-09 05:18 PDT, Donal
no flags
mike
Comment 1 2026-10-08 04:01:53 PDT
Confirmed on iPhone 16 Pro, iOS 27.0.1, Safari and home-screen web app. A 440 Hz tone played through an AudioWorklet clicks every few seconds while getUserMedia is open with echoCancellation: true. The same tone with echoCancellation: false plays clean from the speakers. Routing the worklet through a MediaStreamAudioDestinationNode into an audio element still clicks. No network or speech involved, so it is not the audio source.
Alexey Proskuryakov
Comment 2 2026-10-08 20:19:27 PDT
Thank you for the report! I think that I hear crackling at the beginning and at the end, not throughout the sample. And I do observe that output speaker is different. I don't have an iOS 18 or iOS 26 device handy to compare.
Radar WebKit Bug Importer
Comment 3 2026-10-08 20:19:34 PDT
Donal
Comment 4 2026-10-09 05:16:27 PDT
Created attachment 481735 [details] iPhone SE, iOS 26.2: Test 2, clean (filmed from a second device)
Donal
Comment 5 2026-10-09 05:18:16 PDT
Created attachment 481736 [details] iPhone 16, iOS 27.0.1: Test 2, crackling throughout (filmed from a second device)
Donal
Comment 6 2026-10-09 05:20:03 PDT
Thanks both, and thanks Mike for confirming it independently. To fill in the iOS 26 comparison, I've attached two videos of the same test (Test 2 on the test page in the original report - https://selftapepal.app/audio-test.html - which plays a recorded voice line). Each was filmed from a second device, so you hear what comes out of the speaker. Each one opens on the phone's About screen to show the model and iOS version. iPhone SE, iOS 26.2: clean. There's one small artefact at the very end of the clip, but nothing during playback. iPhone 16, iOS 27.0.1: crackling throughout playback, not just at the start and end. The same test is also clean in Safari on a Mac. Two things I've noticed on iOS 27: The amount of crackle varies a lot from run to run, from light to heavy. That may explain why you heard it mainly at the start and end. Audio state seems to carry over between runs, even across a page reload. Fully closing Safari before each run gives more consistent results. For context: this breaks a web app I run for actors to rehearse and film auditions, which plays recorded scene lines while the mic listens for cues. On iOS 27, playback with the mic open is unusable. Thanks, Donal
Note You need to log in before you can comment on or make changes to this bug.