安卓:使用MediaRecorder录制音视频

本文介绍了如何在Android应用中使用MediaRecorder进行音视频录制。首先,需要在清单文件添加必要的权限,接着在XML布局中设置SurfaceView。然后,创建MediaRecorder对象,并实现SurfaceHolder.Callback接口,重点在surfaceCreated方法中配置MediaRecorder。最后,通过按钮点击事件触发录制操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在清单文件中添加权限(当然动态的权限也可以,看个人情况吧):

    //读写SD卡
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     //相机
    <uses-permission android:name="android.permission.CAMERA" />
    //录音机
    <uses-permission android:name="android.permission.RECORD_AUDIO" />

XML布局中写一个surfaceview:

 <SurfaceView
       android:id="@+id/sur"
       android:layout_width="match_parent"
       android:layout_height="300dp"/>

创建mediaRecorde对象:

  if (mediaRecorder==null){
            mediaRecorder=new MediaRecorder();
        }

重写出SurfaceHolder.Callback的三个方法:
在重写的surfaceCreated中:

        //设置麦克风
        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        //设置摄像头
        mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
        //设置旋转角度(感觉没啥用)
        mediaRecorder.setOrientationHint(270);
        //设置声道(双声道)
        mediaRecorder.setAudioChannels(2);
        //文件路径
        File file = new File(Environment.getExternalStorageDirectory(),"a22.mp4");
        if(!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //设置格式
        mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        //音频编码格式
        mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
        //视频编码格式
        mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
        mediaRecorder.setPreviewDisplay(holder.getSurface());
        //存储的路径
        mediaRecorder.setOutputFile(file.getPath());

自己写个按钮的点击事件:

//准备
 mediaRecorder.prepare();
 //开始
 mediaRecorder.start();
 //停止
  mediaRecorder.stop();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值