[Webkit-unassigned] [Bug 231787] New: Safari local video element pauses after bluetooth audioinput is disconnected

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Oct 14 17:03:10 PDT 2021


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

            Bug ID: 231787
           Summary: Safari local video element pauses after bluetooth
                    audioinput is disconnected
           Product: WebKit
           Version: Safari 15
          Hardware: Mac (Intel)
                OS: macOS 11
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebRTC
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: devalevenkatesh at gmail.com
                CC: youennf at gmail.com

Created attachment 441308

  --> https://bugs.webkit.org/attachment.cgi?id=441308&action=review

Details more on manual steps to repro in devtools console

Problem:
When a bluetooth device is disconnected after getting audio input stream through getUserMedia , I get a “[Error] A MediaStreamTrack ended due to a capture failure" error. If a HTML video element is bound to an active ”videoinput“ media stream, then, the video element automatically pauses as soon as I see above error in browser developer tools console.

The issue is observed only on the local HTML video element. In an WebRTC based web application, if this local video stream is being sent to a remote side, the remote HTML video element is not paused and continues to work as expected.

Steps to Reproduce:
Reproduced on an official WebRTC sample.
(Used Safari 15)

1. Connect a bluetooth device, I reproduced using AirPods Pro.
2. Open https://webrtc.github.io/samples/src/content/devices/input-output/.
3. Provide permissions to choose media devices.
4. Once demo is working, disconnect the bluetooth device from your macOS menu bar.
5. The video element is paused now and you will see “A MediaStreamTrack ended due to a capture failure” error in browser developer tools console.
6. It does not play unless explicitly play() is called on the HTML video element.

Code pen link: https://codepen.io/venkateshdevale/pen/oNejMKO

Actual Results:
The HTML video element pauses when the bluetooth audioinput is disconnected after selection. There is no audio from the audioinput device after error.

Expected Results:
The HTML video element should continue to play and if we are falling back to a different audioinput device, it should get successfully selected.

Build:
* macOS Safari Version 15 (16612.1.29.41.4, 16612)
* macOS Safari Version 14.1.1
* Safari Technology Preview (Release 133 (Safari 15.4, WebKit 16613.1.2.2))

Additional Notes:
* The [Error] A MediaStreamTrack ended due to a capture failure is also observed in few more WebRTC official samples when you simply switch the “audioinput” media devices.
    * https://webrtc.github.io/samples/src/content/getusermedia/volume/
    * More prominently the issue is happening for AirPods Pro.
    * Similar error bug: https://bugs.webkit.org/show_bug.cgi?id=221192
        * It does not speak about the local video pause based on bluetooth audioinput disconnection though.
* Issue not reproducible in Firefox and Chrome latest versions.

-- 
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/20211015/d1040b87/attachment-0001.htm>


More information about the webkit-unassigned mailing list