android29及以上获取视频存储位置
获取安卓设备视频位置
使用该方法
private fun createVideoOutputPath(context: Context): String {
val contentResolver = context.contentResolver
/** Represent the videos collection */
val videosCollection: Uri = sdkAndUp(29) { // if sdk is 29 or higher
MediaStore.Video.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)
} ?: MediaStore.Video.Media.EXTERNAL_CONTENT_URI
/** Represents the data values of the video to be saved */
val contentValues = ContentValues()
// Adding the file title to the content values
contentValues.put(
MediaStore.Video.Media.TITLE,
"VID_" + System.currentTimeMillis() + ".mp4"
)
// Adding the file display name to the content values
contentValues.put(
MediaStore.Video.Media.DISPLAY_NAME,
"VID_" + System.currentTimeMillis() + ".mp4"
)
/** Represents the uri of the inserted video */
val videoUri = contentResolver.insert(videosCollection, contentValues)!!
// Opening a stream on to the content associated with the video content uri
contentResolver.openOutputStream(videoUri)
/** Represents the file path of the video uri */
val outputPath = getUriRealPath(context, videoUri)!!
// Deleting the video uri to create it later with the actual video
contentResolver.delete(videoUri, null, null)
return outputPath
}
private fun getUriRealPath(contentResolver: ContentResolver, uri: Uri): String {
var filePath = ""
val cursor = contentResolver.query(uri, null, null, null, null)
if (cursor != null) {
if (cursor.moveToFirst()) {
var columnName = MediaStore.Images.Media.DATA
when (uri) {
MediaStore.Images.Media.EXTERNAL_CONTENT_URI -> {
columnName = MediaStore.Images.Media.DATA
}
MediaStore.Video.Media.EXTERNAL_CONTENT_URI -> {
columnName = MediaStore.Video.Media.DATA
}
}
val filePathColumnIndex = cursor.getColumnIndex(columnName)
filePath = cursor.getString(filePathColumnIndex)
}
cursor.close()
}
return filePath
}
这段代码在MediaStore
中插入了一个视频URI,检索其文件路径,并从MediaStore
中删除它。这个路径将指向Movies目录,该目录是公开的,不需要权限。现在你可以使用这个文件路径来创建一个File
对象
本文链接:
/archives/1697037598307
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
AkkunYoの博客!
喜欢就支持一下吧