gpt4 book ai didi

android - 如何在 Android 中只过滤掉相关的媒体文件?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:36 24 4
gpt4 key购买 nike

我正在尝试获取手机中的所有音乐文件:

为此我使用:

String[] STAR = {"*"};

Uri allExternalSongUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";



Cursor cursor = getContentResolver().query(allExternalSongUri, STAR, selection, null, null);
if(cursor != null){
if(cursor.moveToFirst()){
do {
String songName = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
Log.i("name", songName);
} while (cursor.moveToNext());
}
cursor.close();
}

但是上面的代码,除了获取音乐文件之外,还会获取一些额外的不必要的文件,例如 *sound_screen_on.mp3*(已被其他应用程序安装和使用)。

问题是我的原生安卓音乐播放器没有列出和播放这些不必要的文件。

如何过滤这些文件。

最佳答案

您可以使用 MediaStore.Audio.AudioColumns 进行过滤类。这将返回大量音频文件的值(value),您可以使用它。

musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
proj, MediaStore.Audio.Media.DURATION + ">= 60000", null, null);
  • Duration 过滤- 音频文件的持续时间,以毫秒为单位
  • Type-Music 过滤-如果音频文件是音乐则非零
  • Type-RingTone 过滤- 如果音频文件可能是铃声则非零
  • Type-Alarm 过滤- 如果音频文件可能是警报则非零

Check for more reference

关于android - 如何在 Android 中只过滤掉相关的媒体文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21707954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com