data class VideoInfo(
val name: String,
val path: String,
val size: Long,
val duration: Long
)
fun getVideos(context: Context): List<VideoInfo> {
val videos = mutableListOf<VideoInfo>()
// 定义需要查询的列
val projection = arrayOf(
MediaStore.Video.Media._ID,
MediaStore.Video.Media.DISPLAY_NAME,
MediaStore.Video.Media.DATA,
MediaStore.Video.Media.SIZE,
MediaStore.Video.Media.DURATION,
MediaStore.Video.Media.DATE_MODIFIED
)
// 定义排序方式
val sortOrder = "${MediaStore.Video.Media.DATE_MODIFIED} DESC"
// 执行查询
context.contentResolver.query(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
projection,
null,
null,
sortOrder
)?.use { cursor ->
val idColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID)
val nameColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME)
val dataColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA)
val sizeColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE)
val durationColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION)
while (cursor.moveToNext()) {
val id = cursor.getLong(idColumn)
val name = cursor.getString(nameColumn)
val path = cursor.getString(dataColumn)
val size = cursor.getLong(sizeColumn)
val duration = cursor.getLong(durationColumn)
val videoInfo = VideoInfo(name, path, size, duration)
videos.add(videoInfo)
}
}
return videos
}
Android MediaStore获取视频
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 代码位置 MediaMetadataRetriever Wrapper 速度对比 左边的图片是通过方式1右边的图片...
- 前言: Android中视频或者音频播放的话获取到播放进度和总时长是很常见的,最近有个需求需要在视频不播放时显示...
- 一、前言: 1. 代码一: 就这么几行代码还是给我抛了个IllegalArgumentException异常,最后...
- IM软件发送视频文件,需要显示缩略图: 效果如下: 更多详解:喜欢可以加Q群号:913934649,点赞,评论; ...
- 什么是YUV格式 YUV,是一种颜色编码方法。Y表示明亮度,也就是灰度值。U和V则是色度、浓度,作用是描述影像色彩...