Android - .read()方法

时间:2012-11-29 07:43:54

标签: android audiorecord

我正在尝试将记录的数据读入短阵列。我想继续录制和阅读,直到它满了。我的代码: http://pastebin.com/r6yuPn82 不幸的是,在调用startRecording方法后,应用程序崩溃了。错误: http://pastebin.com/9jwrPLNc 我可以请你帮我解决一下吗?

2 个答案:

答案 0 :(得分:3)

您的AudioRecord尚未正确初始化。

“引起:java.lang.IllegalStateException:startRecording()在未初始化的AudioRecord 上调用。”

把它放在你的清单中:

<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>

答案 1 :(得分:1)

确保在从MIC读取缓冲区之前进行录制。

请参阅this post中的答案,说明以下内容:

 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();