调用Android系统摄像头进行视频录制,录像并限制时长和大小【摄像】

最近正好用到了调用系统摄像机实现录像还有限制时长大小的功能,找了找资料,并不难,只是大家可能用的不多,时间长有点忘了吧,记录一下,方便你、我、他、它嘛~嘿嘿

1.主要方法:

private fun video() {
        try {
            val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
            val date = Date(System.currentTimeMillis())
            var videoname = format.format(date)
            videoFile = File(FileUtils.downpath, videoname + ".mp4")
            if (videoFile!!.exists()) {
                videoFile!!.delete()
            }
            videoFile!!.createNewFile()

            val intent = Intent(MediaStore.ACTION_VIDEO_CAPTURE)
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                intent.flags = Intent.FLAG_GRANT_WRITE_URI_PERMISSION
                camera_URI = FileProvider.getUriForFile(context, Constent.Provider, videoFile!!)
            } else {
                camera_URI = Uri.fromFile(videoFile)
            }
            //储存地址
            intent.putExtra(MediaStore.EXTRA_OUTPUT, camera_URI)
            //用于控制录制视频的质量;0——低质量;1——高质量
            intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1)
            //允许记录的最长时间(以 秒 为单位)  例如:限制为60S
            intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 60)
            //允许的最大大小(以 B 为单位)  例如:限制大小为100M
            intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 1024L * 1024 * 100)
            startActivityForResult(intent, 66)
        } catch (e: Exception) {
            Log_Ma.e(TAG, e.toString())
            ToastUtils.showToast("启用相机失败,请重试")
        }
    }

2.在获取录像之后的地址信息:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        when (requestCode) {
            66 -> {
                if (resultCode == RESULT_OK) {
                    val videoURL = data?.data
                    Log_Ma.e(TAG, "当前返回地址:${videoURL.toString()}//启动时设置的地址:${videoFile?.absolutePath}")
                }
            }
        }
    }

3.注意:

6.0系统动态权限

7.0动态储存权限

10.0以上还要注意获取系统根目录的方法可能和之前不一样了,要注意

猜你喜欢

转载自blog.csdn.net/fengyeNom1/article/details/106563154
今日推荐