Я прошел почти по каждой ссылке для получения аудиоданных в onActivityResult()
из RecognizerIntent
.
1. Получить URI сохраненного аудио в OnResults (результат пакета) в Speech RecognitionListener android
2. записывать/сохранять аудио с целью распознавания голоса
Я придерживаюсь того же подхода, и мой код почти идентичен. Но я получаю null от data.getData()
; Любая помощь будет очень высоко ценится.
Вот мой код:
private void startVoiceRecognitionActivity() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
String language = Locale.US.toString();
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, language);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, language);
intent.putExtra("android.speech.extra.GET_AUDIO_FORMAT", "audio/AMR");
intent.putExtra("android.speech.extra.GET_AUDIO", true);
startActivityForResult(intent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
Bundle bundle = data.getExtras();
// This part works fine.
ArrayList<String> matches = bundle.getStringArrayList(RecognizerIntent.EXTRA_RESULTS);
// But audioUri is always null !!!
Uri audioUri = data.getData();
...
}
И в моем файле AndroidManifest.xml у меня есть
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Заранее спасибо.