New issue
Advanced search Search tips

Issue 611861 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue webrtc:5525
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

video elements won't use different sinks when sources are from peerConnection

Reported by je...@culturehub.org, May 13 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36

Example URL:

Steps to reproduce the problem:
1. set the video elements to different sinkIds with navigator.mediaDevices.enumerateDevices()
2. generate a log of the different sinks: video.onclick = function () {console.log(video.id + " sink is " + video.sinkId)};
3. listen to sound from the sinks

What is the expected behavior?
different video elements send audio to different sinks

What went wrong?
video elements sourcing from different peers always send to the same sink, despite logging otherwise

Did this work before? No 

Is it a problem with Flash or HTML5? HTML5

Does this work in other browsers? No This does not work in Firefox, but device enumeration is broken as well

Chrome version: 50.0.2661.102  Channel: stable
OS Version: OS X 10.9.5
Flash Version: Shockwave Flash 21.0 r0
 
Labels: Needs-Feedback
Can you provide an example page or file for us to reproduce this?
I have a simple example using peer.js and code from this sample:
https://webrtc.github.io/samples/src/content/devices/multi/

Here's the example:
https://104.131.32.15:8080/index.html

The certificates are old, but it should work in Chrome. Open three windows, and from one of the peers call the two others. Logs from the element and sinkId will show in the console. Click on video element to log it's sinkId.
Project Member

Comment 3 by sheriffbot@chromium.org, May 15 2016

Labels: -Needs-Feedback Needs-Review
Owner: spqc...@chromium.org
Thank you for providing more feedback. Adding requester "spqchan@chromium.org" for another review and adding "Needs-Review" label for tracking.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Owner: ----
Components: -Internals>Media Blink>WebRTC>Video
Cc: jansson@chromium.org
Components: -Blink>WebRTC>Video Blink>WebRTC
Labels: -Needs-Review
Owner: guidou@chromium.org
Status: Assigned (was: Unconfirmed)
guidou@ - is this a dupe of one of the bugs you recently fixed?

jesse@ - Chrome 51 started rolling out to the stable channel earlier this week. Once your instance updates, can you try the same steps again?

Comment 7 by guidou@chromium.org, May 26 2016

This is the same issue as https://bugs.chromium.org/p/webrtc/issues/detail?id=5525

Unfortunately, remote webrtc streams share the same audio renderer and that is why all audio is sent to the same sink. There is no short-term fix for this since supporting echo cancellation on multiple devices is currently not possible and is a long-term goal.

However, it is possible to use different sinks by redirecting a clone of each audio stream to webaudio and from webaudio to another audio element, then applying setSinkId on those audio elements. The disadvantage is that there will be no echo cancellation.

In https://bugs.chromium.org/p/webrtc/issues/detail?id=5525 there is a jsfiddle with a possible implementation of this hack.

Mergedinto: webrtc:5525
Status: Duplicate (was: Assigned)

Sign in to add a comment