import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
import java.io.IOException;
public class VideoRecorderActivity extends AppCompatActivity {
private MediaRecorder mediaRecorder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置视频输出文件
File videoFile = new File(Environment.getExternalStorageDirectory(), "myvideo.mp4");
// 初始化MediaRecorder
mediaRecorder = new 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.setVideoSize(640, 480);
// 设置输出文件
mediaRecorder.setOutputFile(videoFile.getAbsolutePath());
// 准备录制
try {
mediaRecorder.prepare();
mediaRecorder.start(); // 开始录制
// 注意:实际使用中,应该在某个适当的时机停止录制
// 例如,用户点击了停止按钮后,调用 mediaRecorder.stop();
} catch (IOException e) {
e.printStackTrace();
}
// 注意:此处仅为示例,实际开发中应在合适的时机释放资源
// 例如,在Activity的onDestroy方法中调用 releaseMediaRecorder();
}
private void releaseMediaRecorder() {
if (mediaRecorder != null) {
mediaRecorder.stop(); // 停止录制
mediaRecorder.release(); // 释放资源
mediaRecorder = null;
}
}
// 注意:由于篇幅限制,未展示完整的生命周期管理和错误处理逻辑
}
**注意**:此代码示例仅用于展示如何在Android中使用`MediaRecorder`进行视频录制的基本流程。在实际应用中,你需要处理更多的细节,如请求运行时权限(特别是存储权限和相机权限)、处理录制过程中的异常情况、在Activity的适当生命周期方法中管理`MediaRecorder`的生命周期等。此外,由于Android版本更新,某些API可能在不同版本上有所不同,因此请确保测试你的应用以兼容目标Android版本。