<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.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 = new MediaRecorder()// 创建mediarecorder对象// 设置录制视频源为Camera(相机)
mediarecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA)
// 设置录制完成后视频的封装格式THREE_GPP为3gp.MPEG_4为mp4
mediarecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
// 设置录制的视频编码h263 h264
mediarecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264)
// 设置视频录制的分辨率。必须放在设置编码和格式的后面,否则报错
mediarecorder.setVideoSize(176, 144)
// 设置录制的视频帧率。必须放在设置编码和格式的后面,否则报错
mediarecorder.setVideoFrameRate(20)
mediarecorder.setPreviewDisplay(surfaceView.getHolder().getSurface())
// 设置视频文件输出的路径
lastFileName = newFileName()
mediarecorder.setOutputFile(lastFileName)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)