私は以下の問題があります。 私はSpeechRecognizerを使用していくつかの単語を識別します。 私はSpeechRecognizerを破壊するAudioRecord:start()status -38
public void onResults
メソッドを使用します。
私はAudioRecordを初期化し、マイクから録音を開始します。 これは私のlogcatに次のエラーにつながる:
12-09 00:44:01.976: E/AudioRecord(21185): start() status -38
例外は私のコードでスローされません。 AudioRecordは正しく起動しません。 AudioRecordの初期化の前にThread.sleep(200)を追加すると、SpeechRecognizerが十分に速くマイクを解放しないとします。 この問題は発生しません。
この解決策は明らかな理由から非常に悪いものです。したがって、次の質問があります。
AudioRecordが正しく初期化されているかどうかを確認するにはどうすればよいですか? (私のコードでは例外がありません)
_audioRecord.getState() == AudioRecord.STATE_UNINITIALIZED
も偽です。
または、SpeechRecognizerがマイクを適切にリリースしたかどうかを確認するにはどうすればよいですか?
ありがとうございます!
'getRecordingState()'が 'RECORDSTATE_RECORDING'と等しいかどうかをチェックするのはどうですか? – Michael
ありがとう、完全に1つを見落とした。 – user3081081