[Webkit-unassigned] [Bug 213854] New: Airpods and other bluetooth headphones causes audio to stop during webrtc calls

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jul 1 10:28:48 PDT 2020


https://bugs.webkit.org/show_bug.cgi?id=213854

            Bug ID: 213854
           Summary: Airpods and other bluetooth headphones causes audio to
                    stop during webrtc calls
           Product: WebKit
           Version: Safari 13
          Hardware: iPhone / iPad
                OS: iOS 13
            Status: NEW
          Severity: Trivial
          Priority: P2
         Component: WebRTC
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: francesco.durighetto at bandyer.com
                CC: youennf at gmail.com

Test environment:
- Device A, iPhone Xr iOS: 13.6 beta 3, Safari mobile browser
- Device B, whatever desktop/mobile browser

Use case:
User A and B are in a webrtc audio/video call (the audio getusermedia is done with the constraint echoCancellation: true, bu I don't think it matters).

What do you expect?
- If the user A wear a pair of airpods, the audio output and microphone input should switch to this device. When removing the airpods the audio output and microphone input should switch back to the physical device.
- Consistent behavior if done repeatedly.

What happens instead?
SCENARIO 1) not wearing airpods while joining the call) 
when entering a call the remote stream is playing ok in iOS Safari.
- I put airpods: the switch is working flawlessly, audio and microphone are now picked from earphones.
- I remove airpods: the switch to the internal device microphone works ok but the remote audio is NOT playing. (html audio tag -> paused: false) (audio mediaStreamTrack -> enabled: true, readyState: live, muted: false), no paused event emitted from html audio nor muted or ended events are emitted from mediaStreamTrack.
- Try to call .play() on html audio tag -> nothing happens
- Try to call .pause() on html audio tag -> a paused event is emitted from html audio tag
- Try to call .play() again and finally the audio resumes BUT with a very low volume

The only ways to "unlock" the volume are:
- calling 'new webkitAudioContext()'
- rotating the screen of the device (what? this is very strange and can be connected to the "stereo" output when in landscape)
- doing a pinch to zoom (another nonsense)

- Trying to wear again the airpods, the audio is ok but the volume is again really low.
- Trying to remove them again, and no audio is emitted by the phone.


SCENARIO 2) Now let's do the same thing but with the airpods already on the ears.
- Put airpods on
- Join the call. audio is playing good in the airpods and the airpods mic is selected automatically.
- Remove airpods: audio from speakerphone is very low and the only 3 ways I found to unlock are the same described before.
- Also, the audio is not crystal clear as when join the call without airpods. I think the output bitrate of airpods is kept when switching from airpods to iphone (not a big deal but could help debugging)

This is very trivial because we cannot know programmatically when this situations occurs and is simply disruptive for the call user experience.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20200701/5fd2e926/attachment.htm>


More information about the webkit-unassigned mailing list