| Index: Source/modules/webaudio/AudioContext.cpp
|
| diff --git a/Source/modules/webaudio/AudioContext.cpp b/Source/modules/webaudio/AudioContext.cpp
|
| index bd7d0566d86ac06e4719963e2966cd541c52762b..46d1916333c40de4a5cda8fd055e05c457b71cb5 100644
|
| --- a/Source/modules/webaudio/AudioContext.cpp
|
| +++ b/Source/modules/webaudio/AudioContext.cpp
|
| @@ -385,15 +385,16 @@ PassRefPtr<MediaStreamAudioSourceNode> AudioContext::createMediaStreamSource(Med
|
| AudioSourceProvider* provider = 0;
|
|
|
| MediaStreamTrackVector audioTracks = mediaStream->getAudioTracks();
|
| - if (mediaStream->isLocal() && audioTracks.size()) {
|
| - // Enable input for the specific local audio device specified in the MediaStreamSource.
|
| - RefPtr<MediaStreamTrack> localAudio = audioTracks[0];
|
| +
|
| + // FIXME: get a provider for non-local MediaStreams (like from a remote peer).
|
| + for (size_t i = 0; i < audioTracks.size(); ++i) {
|
| + RefPtr<MediaStreamTrack> localAudio = audioTracks[i];
|
| MediaStreamSource* source = localAudio->component()->source();
|
| - destination()->enableInput(source->deviceId());
|
| - provider = destination()->localAudioInputProvider();
|
| - } else {
|
| - // FIXME: get a provider for non-local MediaStreams (like from a remote peer).
|
| - provider = 0;
|
| + if (!source->deviceId().isEmpty()) {
|
| + destination()->enableInput(source->deviceId());
|
| + provider = destination()->localAudioInputProvider();
|
| + break;
|
| + }
|
| }
|
|
|
| RefPtr<MediaStreamAudioSourceNode> node = MediaStreamAudioSourceNode::create(this, mediaStream, provider);
|
|
|