录制视频主要使用到MediaRecorder这个类。代码也不多很简单我就直接粘贴下
if (btRecord.text.toString() == "录制") {
camera = Camera.open()
//设置录制界面的方向
camera.setDisplayOrientation(90)
camera.unlock()
mediaRecorder = MediaRecorder()
//开始录制
btRecord.text = "停止"
mediaRecorder.setCamera(camera)
// 设置音频采集方式
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC)
//设置视频的采集方式
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA)
//设置文件的输出格式
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
//设置audio的编码格式
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC)
//设置video的编码格式
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264)
//设置录制的视频编码比特率,越高视频越清晰当前文件也越大
// mediaRecorder.setVideoEncodingBitRate(1024 * 1024)
// mediaRecorder.setVideoEncodingBitRate(10 * 1920 * 1080);
//设置录制的视频帧率,注意文档的说明:
mediaRecorder.setVideoFrameRate(30);
//设置录制文件输出目录
val externalFilesDir = getExternalFilesDir(Environment.DIRECTORY_DCIM)
val filePath = "${System.currentTimeMillis()}.mp4"
val absolutePath = File(externalFilesDir, filePath).absolutePath
mediaRecorder.setOutputFile(absolutePath)
//设置分辨率
mediaRecorder.setVideoSize(640, 480)
//设置录制方向
mediaRecorder.setOrientationHint(90)
mediaRecorder.setPreviewDisplay(Surface(tvShowVideo.surfaceTexture))
//准备
mediaRecorder.prepare()
//开始录制
mediaRecorder.start()
} else {
//停止录制
btRecord.text = "录制"
//释放资源
mediaRecorder.stop()
mediaRecorder.release()
camera.stopPreview()
camera.release()
}
记得自己添加权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
如果看着理解不了可以下载源码查看
视频录制源码下载;Android视频录制源码下载
版权声明:本文为xiayiye5原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。