summaryrefslogtreecommitdiffstats
path: root/content/browser/speech
diff options
context:
space:
mode:
authorxians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-22 13:40:20 +0000
committerxians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-22 13:40:20 +0000
commit579d6996697140d5042b148ecab4bba5abc3c9e2 (patch)
tree32f114f349d1f99a265296126a1188c8d94a999c /content/browser/speech
parentf29f42b92d789486366cdcd0e26ff9fefb9f3ce6 (diff)
downloadchromium_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.cc17
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) {