📅  最后修改于: 2023-12-03 14:59:15.221000             🧑  作者: Mango
Android MediaRecorder是用于录制音频或视频的API。它可以很容易地从麦克风或摄像头录制音频或视频,并将其保存为可视化的媒体文件。在这个示例中,我们将学习如何使用MediaRecorder API来录制音频并将其保存为.mp3文件。
在manifest文件中添加以下权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在layout资源文件中添加以下代码:
<Button
android:id="@+id/start_record"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="开始录音" />
<Button
android:id="@+id/stop_record"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="停止录音" />
在activity中定义全局变量:
private MediaRecorder recorder;
private String pathSave = Environment.getExternalStorageDirectory().getPath() + "/test.mp3";
在activity中添加以下代码片段来实现录制功能:
findViewById(R.id.start_record).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startRecording();
}
});
findViewById(R.id.stop_record).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopRecording();
}
});
private void startRecording() {
if (recorder == null) {
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setAudioEncodingBitRate(16 * 44100);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(pathSave);
try {
recorder.prepare();
recorder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void stopRecording() {
if (recorder != null) {
try {
recorder.stop();
recorder.release();
recorder = null;
} catch (RuntimeException ex) {
recorder = null;
ex.printStackTrace();
}
}
}
在MainActivity.java中实现录制功能后,点击运行即可看到以下效果:
MediaRecorder API是一个用于录制音频或视频的强大API。通过这个示例,我们看到了如何使用MediaRecorder API来录制音频文件并将其保存到SD卡。在实际开发中,我们可以根据自己的需求配置参数,以达到最佳的音质和性能。