New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 610706 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner: ----
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Audio input device isn't re-chosen automatically if active device is disconnected

Reported by akv...@gmail.com, May 10 2016

Issue description

UserAgent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0

Example URL:

Steps to reproduce the problem:
1. Plug in USB headset.
2. Make sure it's selected as default input device in Windows
3. Open https://apprtc.appspot.com/
4. Grant access to micriphone and make sure "Default" input device is selected
5. Establish WebRTC call. Both participants should hear each other
6. Disconnect USB headset.

What is the expected behavior?

What went wrong?
Playback will switch to another device, while input will not. Even after reconnecting USB headset again, it will not work.

Did this work before? No 

Is it a problem with Flash or HTML5? HTML5

Does this work in other browsers? N/A 

Chrome version: 52.0.2730.0 canary (64-bit)  Channel: canary
OS Version: 8.1
Flash Version: Shockwave Flash 21.0 r0
 
Labels: Needs-Bisect
Cc: brajkumar@chromium.org
Labels: -Needs-Bisect M-52
Status: Untriaged (was: Unconfirmed)
Able to reproduce the issue on Windows 10 using chrome latest canary M52-52.0.2730.0 by following steps mentioned in the comment #0. Observed while disconnecting the USB headset from the device it's not getting switched back to the default microphone.

Tested this issue on previous version of chrome M36-36.0.1972.0 and M40-40.0.2172.0. In M36 unable to hear any audio output even after connecting the USB headset in to the device. In M40 observed the same behavior as seen in M52. So considering this is a non-regression issue and marking it as untriaged.

Thanks!
Components: -Internals>Media Blink>WebRTC
Cc: jansson@chromium.org
Status: WontFix (was: Untriaged)
I think the correct way to handle this involves calling getUserMedia again while the call is still active. But as far as I know, apprtc doesn't include any logic to detect when an input device is disconnected, or to call getUserMedia again during a call, though patches are welcome[1]. :)

Though it's not an open source example, Hangouts seems to sort of do this. If you disconnect the current input device, then click the Hangout settings, you can tell Hangouts to use one of the other still connected devices to continue in the call, without needing to exit the call.

I'm therefore going to close this bug, but I'm open to reopening it if anyone has a code sample that shows how this isn't working.


[1] https://github.com/webrtc/apprtc
Once the device change event and replaceTrack lands in stable I will look into adding device selection in AppRTC. In the meanwhile, the workaround as Ted stated in #4 is the way to go. 

Sign in to add a comment