记录一个APP跳转系统相机拍摄小问题

12 篇文章 0 订阅
7 篇文章 0 订阅
本文记录了在使用Android系统相机拍摄视频时,私有目录cacheDir的输出无效问题,原因在于第三方应用无法无Root访问。提供了两种解决方案:不指定输出路径或在回调时复制到私有目录,以及针对不同场景的建议。
摘要由CSDN通过智能技术生成

记录原因:在实现一个跳转拍视频的功能时候,因为写了如下代码,录制了后返回,结果发现私有目录cacheDir的文件一直为0k,仔细一想...这肯定是0k没得跑,因此记录一下这个乌龙。

val uri: Uri = Uri.fromFile(file) // 将路径转换为Uri对象
                val intent = Intent(MediaStore.ACTION_VIDEO_CAPTURE) // 表示跳转至相机的录视频界面
                intent.putExtra(
                    MediaStore.EXTRA_VIDEO_QUALITY,
                    1
                ) // MediaStore.EXTRA_VIDEO_QUALITY 表示录制视频的质量,从 0-1,越大表示质量越好,同时视频也越大
                intent.putExtra(
                    MediaStore.EXTRA_OUTPUT,
                    uri
                )
                intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 50000) // 设置视频录制的最长时间
                startActivityForResult(intent, 123) // 跳转

上面这段代码当file 为APP私有目录cacheDir的时候,MediaStore.EXTRA_OUTPUT设置将不生效(这里是跳转到APP拍视频,当然拍照片也是一样的)

原因:显然...第三方应用(系统的拍照软件)没有root怎么可以访问APP的私有目录.....

如果非要调用第三方应用(系统的拍照软件)把视频/照片保存到私有目的怎么办?

解决方案:

1.不加MediaStore.EXTRA_OUTPUT (让系统相机存储在自己默认)或者设置一个公开的sdcard目录

2.回调的时候copy一份到私有目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值