android中利用 AudioRecod 来录制音频
时间: 2024-03-05 19:55:20 浏览: 21
要在 Android 上录制音频,还可以使用 AudioRecord 类。以下是一个简单的示例代码,可以录制音频并保存到指定的文件路径:
```
private AudioRecord recorder;
private int bufferSize = AudioRecord.getMinBufferSize(44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
private String outputFilePath = "/sdcard/recorded_audio.pcm";
public void startRecording() {
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, 44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
byte[] buffer = new byte[bufferSize];
recorder.startRecording();
FileOutputStream outputStream = null;
try {
outputStream = new FileOutputStream(outputFilePath);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
while (recording) {
int numRead = recorder.read(buffer, 0, bufferSize);
if (numRead > 0) {
try {
outputStream.write(buffer, 0, numRead);
} catch (IOException e) {
e.printStackTrace();
}
}
}
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void stopRecording() {
recording = false;
recorder.stop();
recorder.release();
recorder = null;
}
```
在这个例子中,我们首先创建一个 AudioRecord 对象,然后设置音频源、采样率、通道数、采样位数和缓冲区大小。接下来,我们开始录制音频,并将录制的数据写入到文件中。
当我们想要停止录制时,只需要将 recording 标志设置为 false,然后调用 stop() 方法停止录制,最后调用 release() 方法释放 AudioRecord 对象。
请注意,此代码示例可能需要一些权限,例如 RECORD_AUDIO 和 WRITE_EXTERNAL_STORAGE 权限。另外,由于录制的是原始的 PCM 数据,你还需要将其转换为 WAV 或其他格式才能在常见的媒体播放器中播放。