diff options
author | xians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-22 13:40:20 +0000 |
---|---|---|
committer | xians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-22 13:40:20 +0000 |
commit | 579d6996697140d5042b148ecab4bba5abc3c9e2 (patch) | |
tree | 32f114f349d1f99a265296126a1188c8d94a999c /content/browser/speech | |
parent | f29f42b92d789486366cdcd0e26ff9fefb9f3ce6 (diff) | |
download | chromium_src-579d6996697140d5042b148ecab4bba5abc3c9e2.zip chromium_src-579d6996697140d5042b148ecab4bba5abc3c9e2.tar.gz chromium_src-579d6996697140d5042b148ecab4bba5abc3c9e2.tar.bz2 |
added back support to speech when ask_user=false. We should use the default device for the deprecated API.
TBR=henrika@chromium.org
BUG=252848
TEST=
<script>
recognition = new webkitSpeechRecognition();
recognition.start();
</script>
Review URL: https://codereview.chromium.org/17074008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208020 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/speech')
-rw-r--r-- | content/browser/speech/speech_recognition_manager_impl.cc | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/content/browser/speech/speech_recognition_manager_impl.cc b/content/browser/speech/speech_recognition_manager_impl.cc index 19dff5c..63d4c61 100644 --- a/content/browser/speech/speech_recognition_manager_impl.cc +++ b/content/browser/speech/speech_recognition_manager_impl.cc @@ -22,6 +22,7 @@ #include "content/public/common/speech_recognition_error.h" #include "content/public/common/speech_recognition_result.h" #include "media/audio/audio_manager.h" +#include "media/audio/audio_manager_base.h" #if defined(OS_ANDROID) #include "content/browser/speech/speech_recognizer_impl_android.h" @@ -568,10 +569,20 @@ SpeechRecognitionManagerImpl::GetSessionState(int session_id) const { void SpeechRecognitionManagerImpl::SessionStart(const Session& session) { DCHECK_EQ(primary_session_id_, session.id); const MediaStreamDevices& devices = session.context.devices; - DCHECK_EQ(1u, devices.size()); - DCHECK_EQ(MEDIA_DEVICE_AUDIO_CAPTURE, devices.front().type); + std::string device_id; + if (devices.empty()) { + // From the ask_user=false path, use the default device. + // TODO(xians): Abort the session after we do not need to support this path + // anymore. + device_id = media::AudioManagerBase::kDefaultDeviceId; + } else { + // From the ask_user=true path, use the selected device. + DCHECK_EQ(1u, devices.size()); + DCHECK_EQ(MEDIA_DEVICE_AUDIO_CAPTURE, devices.front().type); + device_id = devices.front().id; + } - session.recognizer->StartRecognition(devices.front().id); + session.recognizer->StartRecognition(device_id); } void SpeechRecognitionManagerImpl::SessionAbort(const Session& session) { |