Android开发之android录制视频功能

录制视频主要使用到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版权协议,转载请附上原文出处链接和本声明。