在Android中,MediaRecorder类用于录制音频和视频。为了处理回调,您需要设置一个监听器来接收和处理MediaRecorder的事件。以下是一个简单的示例,展示了如何使用MediaRecorder的回调来处理录制完成事件:
MediaRecorder.OnInfoListener
接口的类:public class MyMediaRecorderListener implements MediaRecorder.OnInfoListener {
@Override
public void onInfo(MediaRecorder mr, int what, int extra) {
if (what == MediaRecorder.INFO_STARTED) {
// 录制已经开始
} else if (what == MediaRecorder.INFO_STOPPED) {
// 录制已经完成
}
}
}
MediaRecorder mediaRecorder = new MediaRecorder();
MyMediaRecorderListener myMediaRecorderListener = new MyMediaRecorderListener();
mediaRecorder.setOnInfoListener(myMediaRecorderListener);
// 配置MediaRecorder
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setOutputFile("/path/to/output/file");
// 开始录制
try {
mediaRecorder.prepare();
mediaRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
当录制完成时,onInfo
方法将被调用。您可以在该方法中执行所需的操作,例如停止录制、保存文件等。
最后,记得在适当的时候停止录制并释放资源:
// 停止录制
mediaRecorder.stop();
// 释放资源
mediaRecorder.release();
// 取消回调
mediaRecorder.setOnInfoListener(null);
这样,您就可以使用MediaRecorder的回调来处理录制完成事件了。请注意,这个示例仅适用于音频录制。如果您还需要处理视频录制,您需要实现MediaRecorder.OnVideoSizeChangedListener
接口并在onVideoSizeChanged
方法中处理视频尺寸变化。