如何使用MediaStore API获取MP3格式音频文件,过滤其他格式音频?
筛选MP3格式音频的修改方案
你可以直接利用MediaStore自带的MIME类型字段做过滤,MP3格式对应的标准MIME类型为audio/mpeg,将该筛选条件和你原有路径匹配的条件做拼接即可。
修改后的代码
val cursor = context.contentResolver.query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, arrayOf(MediaStore.Audio.Media._ID), // 拼接原有路径条件 + MP3格式筛选条件 MediaStore.Audio.Media.DATA + "=? AND " + MediaStore.Audio.Media.MIME_TYPE + "=?", // 按顺序给占位符传值 arrayOf(filePath, "audio/mpeg"), null )
补充说明
- 如果你需要查询设备上所有的MP3文件、不需要限定特定路径,可以去掉路径匹配的相关逻辑,selection参数仅保留
MediaStore.Audio.Media.MIME_TYPE + "=?",selectionArgs仅传入"audio/mpeg"即可。 - 不推荐自行截取文件路径的后缀名做筛选,部分异常命名的MP3文件会被误筛,用系统预生成的MIME_TYPE字段准确率更高。
内容的提问来源于stack exchange,提问作者Muhammad Sajid
相关产品推荐
相关产品推荐

