Bug 213854

Summary: Airpods and other bluetooth headphones causes audio to stop during webrtc calls
Product: WebKit Reporter: Francesco Durighetto (kekkokk) <francesco.durighetto>
Component: WebRTCAssignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Trivial CC: daginge, ddp.bkdn, dustin.greif, silviapfeiffer1, webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: Safari 13   
Hardware: iPhone / iPad   
OS: iOS 13   

Francesco Durighetto (kekkokk)
Reported 2020-07-01 10:28:48 PDT
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.
Attachments
Radar WebKit Bug Importer
Comment 1 2020-07-01 17:38:55 PDT
Dag-Inge Aas
Comment 2 2020-07-29 05:14:40 PDT
Could this be related to https://bugs.webkit.org/show_bug.cgi?id=209594 also? Does video playback also stop, or just audio?
Silvia Pfeiffer
Comment 3 2020-10-26 15:26:42 PDT
Note You need to log in before you can comment on or make changes to this bug.