Android AudioRecord 与 MediaRecorder 录制音频

android

1个回答

写回答

雾霾里告白

2025-07-02 12:25

+ 关注

Android
Android

使用Android设备进行音频录制是一项常见的任务。在Android开发中,我们可以使用两种主要的方式来实现音频录制,分别是使用AudioRecord类和MediaRecorder类。本文将介绍这两种方法,并提供相应的案例代码。

使用AudioRecord类录制音频

AudioRecord类是Android提供的一个用于录制音频的类。它允许我们以原始的音频数据的形式捕获音频流。下面是一个使用AudioRecord类录制音频的示例代码:

Java

private AudioRecord audioRecord;

private boolean isRecording = false;

private void startRecording() {

int bufferSize = AudioRecord.getMinBufferSize(

SAMPLE_RATE,

CHANNEL_CONFIG,

AUDIO_FORMAT

);

audioRecord = new AudioRecord(

AudIOSource.MIC,

SAMPLE_RATE,

CHANNEL_CONFIG,

AUDIO_FORMAT,

bufferSize

);

byte[] buffer = new byte[bufferSize];

audioRecord.startRecording();

isRecording = true;

while (isRecording) {

int bytesRead = audioRecord.read(buffer, 0, buffer.length);

// 处理音频数据

}

audioRecord.stop();

audioRecord.release();

audioRecord = null;

}

private void stopRecording() {

isRecording = false;

}

在上面的代码中,我们首先创建一个AudioRecord对象,并设置相应的参数,例如采样率、声道配置和音频格式。然后,我们使用一个循环来不断从麦克风读取音频数据,并进行处理。最后,我们在停止录制时停止AudioRecord对象,并释放资源。

使用MediaRecorder类录制音频

MediaRecorder类是Android提供的另一种用于录制音频的类。与AudioRecord类不同,MediaRecorder类提供了更高级的接口,可以方便地进行音频录制。下面是一个使用MediaRecorder类录制音频的示例代码:

Java

private MediaRecorder mediaRecorder;

private boolean isRecording = false;

private void startRecording() {

mediaRecorder = new MediaRecorder();

mediaRecorder.setAudIOSource(MediaRecorder.AudIOSource.MIC);

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

mediaRecorder.setOutputFile(getOutputFilePath());

try {

mediaRecorder.prepare();

mediaRecorder.start();

isRecording = true;

} catch (IOException e) {

e.printStackTrace();

}

}

private void stopRecording() {

if (isRecording) {

mediaRecorder.stop();

mediaRecorder.release();

mediaRecorder = null;

isRecording = false;

}

}

在上面的代码中,我们首先创建一个MediaRecorder对象,并设置音频源、输出格式、音频编码器和输出文件路径。然后,我们调用prepare()方法准备录制,调用start()方法开始录制。最后,在停止录制时停止MediaRecorder对象,并释放资源。

本文介绍了在Android中使用AudioRecord类和MediaRecorder类进行音频录制的方法,并提供了相应的示例代码。无论是使用AudioRecord类还是MediaRecorder类,我们都可以方便地实现音频录制功能。根据具体的需求和场景,选择合适的方法来进行音频录制。

希望本文对你有所帮助,谢谢阅读!

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号