在Android中,MediaRecorder類用于錄制音頻和視頻。為了處理回調(diào),您需要設(shè)置一個監(jiān)聽器來接收和處理MediaRecorder的事件。以下是一個簡單的示例,展示了如何使用MediaRecorder的回調(diào)來處理錄制完成事件:
MediaRecorder.OnInfoListener
接口的類:public class MyMediaRecorderListener implements MediaRecorder.OnInfoListener {
@Override
public void onInfo(MediaRecorder mr, int what, int extra) {
if (what == MediaRecorder.INFO_STARTED) {
// 錄制已經(jīng)開始
} else if (what == MediaRecorder.INFO_STOPPED) {
// 錄制已經(jīng)完成
}
}
}
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();
}
當(dāng)錄制完成時,onInfo
方法將被調(diào)用。您可以在該方法中執(zhí)行所需的操作,例如停止錄制、保存文件等。
最后,記得在適當(dāng)?shù)臅r候停止錄制并釋放資源:
// 停止錄制
mediaRecorder.stop();
// 釋放資源
mediaRecorder.release();
// 取消回調(diào)
mediaRecorder.setOnInfoListener(null);
這樣,您就可以使用MediaRecorder的回調(diào)來處理錄制完成事件了。請注意,這個示例僅適用于音頻錄制。如果您還需要處理視頻錄制,您需要實(shí)現(xiàn)MediaRecorder.OnVideoSizeChangedListener
接口并在onVideoSizeChanged
方法中處理視頻尺寸變化。