美文网首页Android知识Android开发
MediaRecorder简单的使用

MediaRecorder简单的使用

作者: 01b | 来源:发表于2016-04-20 15:33 被阅读0次

    MediaRecorder用于录像录音。

    MediaRecorder录像录音必须按照API说明的调用顺序依次调用,否则报错。可能会出现无法调用start()方法或者调用start()后闪退。

    MediaRecorder依赖硬件,在一个手机可以用的配置,放到一台别的手机上可能又会出现bug。

    添加权限:

    <user-permission android:name="android.permission.RECORD_AUdio"/>

    <user-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <user-permission android:name="android.permission.CAMERA"/>

    <user-permission android:name="android.permission.FLASHLIGHT"/>

    <user-permission android:name="android.permission.MOUNT_UNMOUNT_FILRSYSTEMS"/>

    <user-permission android:name="android.hardware.camera"/>

    <user-permission android:name="android.hardware.camera.autofocus"/>

    下面是MediaRecorder的使用:

    //设置调用的摄像头

    mediarecorder.setCamera(Camera);

    //指定Audio,video来源

    mediarecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);

    mediarecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

    // 指定CamcorderProfile(需要API Level 8以上版本)

    // mMediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));

    //使用CamcorderProfile做配置的话,输出格式,音频编码,视频编码 不要写

    // 设置输出格式和编码格式(针对低于API Level 8版本)

    mediarecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //设置输出格式,.THREE_GPP为3gp,.MPEG_4为mp4

    mediarecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);//设置声音编码类型 mic

    mediarecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);//设置视频编码类型,一般h263,h264

    mediarecorder.setOutputFile("/sdcard/myVideo.3gp");

    mediarecorder.setVideoSize(640,480);//设置视频分辨率,设置错误调用start()时会报错,可注释掉在运行程序测试,有时注释掉可以运行

    //     mediarecorder.setVideoFrameRate(24);//设置视频帧率,可省略

    mediarecorder.setVideoEncodingBitRate(10*1024*1024);//提高帧频率,录像模糊,花屏,绿屏可写上调试

    mediarecorder.setPreviewDisplay(surfaceHolder.getSurface()); //设置视频预览

    try {

    // 准备录制

    mediarecorder.prepare();

    // 开始录制

    mediarecorder.start();

    } catch (IllegalStateException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    停止录像:(按照顺序调用以下方法)

    surfaceview = null;

    surfaceHolder = null;

    if (mediarecorder != null) {

    // 停止录制

    mediarecorder.stop();//先停止

    mediarecorder.reset(); // 在重置mediarecorder

    // 释放资源

    mediarecorder.release();//释放mediarecorder

    mediarecorder = null;

    if (mCamera != null) {

    mCamera.release(); //释放摄像头

    mCamera = null;

    }

    }

    视频编码格式:default,H263,H264,MPEG_4_SP

    获得视频资源:default,CAMERA

    音频编码格式:default,AAC,AMR_NB,AMR_WB,

    获得音频资源:defalut,camcorder,mic,voice_call,voice_communication,voice_downlink, voice_recognition,  voice_uplink;

    输出方式:amr_nb,amr_wb,default,mpeg_4,raw_amr,three_gpp.

    相关文章

      网友评论

        本文标题:MediaRecorder简单的使用

        本文链接:https://www.haomeiwen.com/subject/wwwzlttx.html