android MediaRecorder的简单应用-录像

之前用MediaRecorder类实现了简单的录音demo,它还有录像功能,如下是一个简单的录像实现过程,

实现步骤跟录音录音大致一样,在此温习一遍:

第一步:实例化对象:mRecord = new MediaRecorder();

第二步:设置输入源:

1、音频输入源:mRecord.setAudioSource(MediaRecorder.AudioSource.MIC);

2、视频输入源:mRecord.setVideoSource(MediaRecorder.VideoSource.CAMERA);

第三步:设置输出格式:mRecord.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

第四步:设置编码方式:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用以下步骤实现在 Android 10 上使用 MediaRecorder 录制视频并添加时间水印: 1. 首先,创建一个 SurfaceView 以预览摄像头捕获的视频。在 onCreate() 方法中添加以下代码: ``` SurfaceView surfaceView = findViewById(R.id.surface_view); SurfaceHolder holder = surfaceView.getHolder(); holder.addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder holder) { // 初始化 Camera initCamera(holder); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // 空实现 } @Override public void surfaceDestroyed(SurfaceHolder holder) { // 释放资源 releaseCamera(); } }); ``` 2. 接下来,初始化 MediaRecorder 并配置它以录制视频。在 initCamera() 方法中添加以下代码: ``` private void initCamera(SurfaceHolder holder) { try { camera = Camera.open(); camera.setPreviewDisplay(holder); camera.setDisplayOrientation(90); camera.startPreview(); mediaRecorder = new MediaRecorder(); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); mediaRecorder.setVideoSize(640, 480); mediaRecorder.setVideoFrameRate(30); mediaRecorder.setVideoEncodingBitRate(3 * 1024 * 1024); mediaRecorder.setOrientationHint(90); // 设置输出文件 String filePath = getExternalFilesDir(null).getAbsolutePath() + "/video.mp4"; File file = new File(filePath); if (file.exists()) { file.delete(); } mediaRecorder.setOutputFile(filePath); // 准备录制 mediaRecorder.prepare(); } catch (IOException e) { e.printStackTrace(); } } ``` 3. 开始录制视频。在 startRecording() 方法中添加以下代码: ``` private void startRecording() { if (mediaRecorder != null) { try { // 开始录制 mediaRecorder.start(); // 显示时间水印 startTimer(); } catch (IllegalStateException e) { e.printStackTrace(); } } } ``` 4. 实现时间水印。在 startTimer() 方法中添加以下代码: ``` private void startTimer() { final TextView textView = findViewById(R.id.time_stamp); textView.setVisibility(View.VISIBLE); timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); textView.setText(simpleDateFormat.format(new Date())); } }); } }, 0, 1000); } ``` 5. 停止录制视频。在 stopRecording() 方法中添加以下代码: ``` private void stopRecording() { if (mediaRecorder != null) { try { // 停止录制 mediaRecorder.stop(); mediaRecorder.release(); mediaRecorder = null; // 停止时间水印 stopTimer(); } catch (IllegalStateException e) { e.printStackTrace(); } } } ``` 6. 停止时间水印。在 stopTimer() 方法中添加以下代码: ``` private void stopTimer() { TextView textView = findViewById(R.id.time_stamp); textView.setVisibility(View.GONE); if (timer != null) { timer.cancel(); timer = null; } } ``` 最后,在 AndroidManifest.xml 文件中添加以下权限: ``` <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> ``` 完成后,你的应用程序现在可以在 Android 10 上使用 MediaRecorder 录制视频并添加时间水印。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值