有一些方法可以在Android上录制音频吗?我使用了AudioRecord API,它崩溃了应用程序。
我做错了吗?
short[] audioData = new short[minBufferSize];
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
11025,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
minBufferSize);
audioRecord.startRecording();
while(recording){
int numberOfShort = audioRecord.read(audioData, 0, minBufferSize);
for(int i = 0; i < numberOfShort; i++){
dataOutputStream.writeShort(audioData[i]);
}
}
audioRecord.stop();
答案 0 :(得分:6)
支持AudioRecord,适用于Android Wear。如果您在仿真器上进行测试,则可能无法支持您提供的采样率,11025,请尝试使用另一个,例如8000.
在构建AudioRecord之后,您应该在尝试录制之前检查状态以确认初始化是否成功。
audioRecord.getState() == AudioRecord.STATE_INITIALIZED
还要确保您在清单中拥有正确的权限。您将至少需要android.permission.RECORD_AUDIO以及您正在编写文件的位置的任何权限。