在Android中,使用MediaRecorder處理中斷的方法如下:
private MediaRecorder mediaRecorder;
private boolean isInterrupted = false;
prepare()
方法準備錄制:mediaRecorder = new MediaRecorder();
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setOutputFile(videoFilePath);
try {
mediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
isInterrupted
為true
:AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setAudioFocusChangeListener(new AudioManager.OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
isInterrupted = true;
}
}
});
isInterrupted
變量。如果為true
,則停止錄制并釋放MediaRecorder對象:while (!isInterrupted) {
// 錄制邏輯,例如捕獲視頻幀
if (isInterrupted) {
mediaRecorder.stop();
mediaRecorder.release();
mediaRecorder = null;
}
}
通過以上步驟,可以在Android中使用MediaRecorder處理中斷。注意,這個示例僅適用于音頻焦點變化的情況,實際應用中可能需要根據具體需求調整中斷處理邏輯。