1

我正在尝试将记录的数据读入短数组。我想继续记录和阅读,直到写满为止。我的代码: http://pastebin.com/r6yuPn82 不幸的是,应用程序在调用 startRecording 方法后崩溃。错误: http ://pastebin.com/9jwrPLNc 请问您能帮我修复它吗?

4

2 回答 2

3

您的 AudioRecord 未正确初始化。

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

把它放在你的清单中:

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

在从 MIC 读取到缓冲区之前,请确保您正在录音。

请参阅此帖子中的答案,内容如下:

 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 回答