Calls to getUserMedia with differing audio settings ignore the deviceID
Reported by
mark-chr...@xwax.org,
Jul 6
|
||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 Steps to reproduce the problem: 1. Call getUserMedia with a specific device ID 2. Discard the stream 3. Call again with the same device ID and change echoCancellation setting. What is the expected behavior? On the second call, we should get the correct device with chosen echo cancellation. What went wrong? The second call incorrectly uses the default device. In general the behaviour seems to be: * First call to getUserMedia acknowledges deviceID and settings * Later call where the parameters match the original call: correct stream is returned * Later call where the parameters are different to the original call: BUG: settings are acknowledged but the deviceID is ignored. Did this work before? N/A Does this work in other browsers? Yes Chrome version: 69 Channel: stable OS Version: 10.13.5 Flash Version: The behaviour is not dependent on the original setting of the parameter. The bug is shown as long as subsequent calls use a different setting. See the attached test program. Open the page and call go(). You can also force the initial value of the parameter with go(true) or go(false) I tested with an additional setTimeout(3000) after dropping the stream, with no change. I've verified the same buggy behaviour on these platforms: * MacOS X 10.13.5 - Chrome 67.0.3396.99 (Official Build) (64-bit) - Canary 69.0.3481.0 (Official Build) canary (64-bit) * Linux Slackware 14.1 - Chrome 67.0.3396.99 (Official Build) (64-bit) - Chromium nightly 69.0.3484.0 (Developer Build) (64-bit)
,
Jul 9
Tested the issue on mac 10.13.3 using latest stable #67.0.3396.99 and latest canary #69.0.3486.0. Attached a screen cast for reference. Following are the steps followed to reproduce the issue. ------------ 1. Opened the attached file "test-getusermedia.html". 2. Typed in console as call go(), call go(true) and call go(false). 3. Observed that an error got generated as Uncaught SyntaxError: Unexpected identifier mark-chromium@ - Could you please check the attached screen cast and please let us know if anything missed from our end. Thanks...!!
,
Aug 13
#2: yeah - Javascript function calls are done like "go();" not like "call go()". Reporter: Thanks for the report. Marking for media team triage.
,
Aug 13
,
Aug 21
,
Aug 22
This behavior is correct. The given example uses only ideal constraints which are satisfied on a best-effort basis, but are not required. What is happening is that the first call returns the desired device ID with echoCancellation setting 1. The second time, Chrome cannot currently open the device simultaneously with a different echoCancellation setting, but since the deviceID is not mandatory, Chrome chooses a different device. Use exact if you want to force the device. The problem is that the second attempt will result in OverconstrainedError unless you stop the first track. Thus, this is WAI. We plan to add the ability to open a device with different settings and/or reconfigure an open device (if allowed by constraints) in the future. For the time being, a page can open a device with a only one set of settings at a time and cannot reconfigure it. |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by susan.boorgula@chromium.org
, Jul 9