New issue
Advanced search Search tips

Issue 648286 link

Starred by 8 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Feature



Sign in to add a comment

Unable to send audio output to earpiece for WebRTC audio-only use case on Android phones

Reported by ryan.hil...@gmail.com, Sep 19 2016

Issue description

Steps to reproduce the problem:
1. Browse to https://webrtc.github.io/samples/src/content/devices/input-output/ and allow use of microphone, camera
2. Click the drop-down for "Audio output destination". Only "Default" is shown as an option (Default supports speakerphone/headphones only, underlying function call is navigator.mediaDevices.enumerateDevices()).

What is the expected behavior?
An output device specific to the earpiece is also shown
-or-
A setting is made available to toggle the audio between speakerphone and earpiece when headphones are not connected

What went wrong?
For a WebRTC call from Android that is audio-only, the user should be able to use the earpiece as they would a traditional call in the phone app. In the current state they can only use speakerphone or headphones.

Did this work before? No 

Chrome version: 55.0.2860.0  Channel: stable
OS Version: 6.0.1
Flash Version: Disabled

Unsure if this qualifies as a bug or feature, started as bug.
 
Components: Blink>WebRTC
Owner: jansson@chromium.org
Status: Assigned (was: Unconfirmed)
Labels: -Type-Bug Type-Feature
Owner: henrika@chromium.org
henrika@ I assume Android does not expose the devices to Chrome? If so, I guess a change is needed in Android rather than Chrome?
Owner: guidou@chromium.org
guidou@ works in this area and should know the latest details.

Comment 4 by guidou@chromium.org, Sep 21 2016

This is basically a request for setSinkId on Android.
setSinkId allows changing the output device for a given media element and is  supported on Chromium on desktop platforms.

The problem with Android is that, at the moment, it is not possible for an application to send different audio streams to different output devices and switch the devices for each stream independently, as required by setSinkId.

We plan to implement setSinkId on Android once the platform makes it feasible.
Unfortunately, there is no ETA on that.


Cc: guidou@chromium.org jansson@chromium.org
Owner: ----
Status: Available (was: Assigned)
Is there a feature request in place for the Android team, and if so can you provide any way to track their progress?
Owner: guidou@chromium.org
Status: Assigned (was: Available)
Any updates on this issue?

Comment 9 by guidou@chromium.org, Aug 18 2017

No new updates.
Owner: ----
Status: Available (was: Assigned)
Components: -Blink>WebRTC Blink>WebRTC>Audio
I don't think setSinkId is the way to solve this.

I recently discovered that, on my android device, the volume of <audio> elements is normally controlled by the 'media' volume but is controlled by the 'call/ringer' volume after getUserMedia has been called (and returned a MediaStream). The result is <audio> elements not related to the user media now play at the wrong volume.

I think a better solution would be some means to indicate the purpose of the <audio> element, such as media, voice call or notification.

Sign in to add a comment