It appears that AudioContext is not releasing Bluetooth headphones when a stream is destroyed.
The console logs an error when trying to re-use the headphones to get an audio stream: A MediaStreamTrack ended due to a capture failure
I have detailed steps to reproduce in a modified webrtc sample here.
It basically creates an AudioContext for a stream from headphones, then changes the audio input device to internal mic and then back to headphones, at which point the capture fails.
This bug suggests it can be solved by closing the AudioContext:
However, the AudioContext doc recommends using a single AudioContext instance for multiple nodes, and therefore closing a whole context to release the hardware from one node is not a viable solution: https://developer.mozilla.org/en-US/docs/Web/API/AudioContext
Note that this issue is not present in other browsers, nor in safari with non-bluetooth devices.
A colleague was unable to reproduce with AirPods but we were able to reproduce using Sony WH-1000XM3 and Bose NC700 headphones.
I wonder whether this is https://bugs.webkit.org/show_bug.cgi?id=231280.
I am not able to reproduce on a recent safari build.
On which version can you reproduce? Is it also reproducing in STP?
I was using 15.0.
You could be right, I am unable to repro in 15.4 beta release.
Marking as configuration changed