1

記録されたデータを短い配列に読み込もうとしています。いっぱいになるまで録音と読みを続けたいです。私のコード: http : //pastebin.com/r6yuPn82残念ながら、startRecordingメソッドを呼び出した後にアプリケーションがクラッシュします。エラー: http: //pastebin.com/9jwrPLNc 修正を手伝ってもらえますか?

4

2 に答える 2

3

AudioRecord が正しく初期化されていません。

「原因: java.lang.IllegalStateException: startRecording() が初期化されていない AudioRecordで呼び出されました。」

これをマニフェストに入れます:

<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
于 2012-11-29T07:59:04.903 に答える
1

マイクからバッファに読み取る前に、録音していることを確認してください。

次のように言っているこの投稿の答えを参照してください:

 short[] audioData = new short[bufferSize];

 int offset =0;
 int shortRead = 0;

 //start tapping into the microphone
 audioRecored.startRecording();

 //start reading from the microphone to an internal buffer - chuck by chunk
 while (offset < bufferSize)
 {
    shortRead = audioRecored.read(audioData, offset ,bufferSize - offset);
        offset += shortRead;
 }

 //stop tapping into the microphone
 audioRecored.stop();
于 2013-03-05T12:12:01.347 に答える