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