安卓 11 (R,API level 30) 视频录制存储相关适

2021-10-28  本文已影响0人  蜂鸟之歌

问题描述:安卓 11 使用 MediaRecorder 录制视频,由于新的分区存储特性(Scoped Storage,APP 产生的文件只能通过 MediaStore API 写入磁盘),存储路径无法直接使用外部 SD 卡的路径。

问题解决思路:

a. 使用应用内部存储路径 getExternalFilesDir(null), 真实路径为 "/storage/emulated/0/Android/data/<your package name>/"

b. MediaRecorder 设置存储路径的方法 setOutputFile 可以接受 FileDescriptor 对象,利用 ContentResolver 和 MediaStore 获得外部存储路径的 FileDescriptor,就可以使用外部分区存储的路径录制了。

其他

a. 相关链接:安卓开发者文档-访问共享存储空间中的媒体文件
b. 相关链接:关于Android Q分区存储的一些适配心得
c. 相关链接:Android Q, how to save audio recording with MediaStore with the correct file name?
d. 个人网站:蜂鸟之歌

上一篇下一篇

猜你喜欢

热点阅读