使用 PATH 列出 MediaStore 中的所有音乐

2024-04-16

好吧,我已经在这个项目上工作了几天,我的大部分时间都在研究如何在列表视图或其他东西中列出设备上的所有音乐,我已经搜索了几天并且这简直要了我的命。我确实一度非常接近显示一个文件夹中的所有音乐,但由于大多数人都会有像 artiest 和专辑这样的子文件夹,我需要一种方法来搜索子文件夹中的 MP3 或音乐文件。

这是我迄今为止收集的音乐:

package com.androidhive.musicplayer;

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.HashMap;

import android.provider.MediaStore;

public class SongsManager {
// SDCard Path
final String MEDIA_PATH = new String(MediaStore.Audio.Media.getContentUri("external").toString());
private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();

// Constructor
public SongsManager(){

}

/**
 * Function to read all mp3 files from sdcard
 * and store the details in ArrayList
 * */
public ArrayList<HashMap<String, String>> getPlayList(){
    File home = new File(MEDIA_PATH);

    if (home.listFiles(new FileExtensionFilter()).length > 0) {
        for (File file : home.listFiles(new FileExtensionFilter())) {
            HashMap<String, String> song = new HashMap<String, String>();
            song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
            song.put("songPath", file.getPath());

            // Adding each song to SongList
            songsList.add(song);
        }
    }
    // return songs list array
    return songsList;
}

/**
 * Class to filter files which are having .mp3 extension
 * */
class FileExtensionFilter implements FilenameFilter {
    public boolean accept(File dir, String name) {
        return (name.endsWith(".mp3") || name.endsWith(".MP3"));
    }
}

}

感谢任何能提供帮助的人。 :)


尽管该帖子已经很旧了,但对于像我这样的其他人来说,为了了解使用其文件路径创建音乐列表的想法,我在此处添加了解决方案。MediaStore.Audio.Media.DATA列实际上包含媒体文件路径。您可以使用以下代码片段获取必要的信息:

ContentResolver cr = getActivity().getContentResolver();

Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String selection = MediaStore.Audio.Media.IS_MUSIC + "!= 0";
String sortOrder = MediaStore.Audio.Media.TITLE + " ASC";
Cursor cur = cr.query(uri, null, selection, null, sortOrder);
int count = 0;

if(cur != null)
{
    count = cur.getCount();

    if(count > 0)
    {
        while(cur.moveToNext())
        {
            String data = cur.getString(cur.getColumnIndex(MediaStore.Audio.Media.DATA));
            // Add code to get more column here

            // Save to your list here
        }

    }

    cur.close();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PATH 列出 MediaStore 中的所有音乐 的相关文章

  • Android 中的 GPS 超时

    在黑莓中 我们使用超时来获取位置 这样如果它在这么长时间内没有重新调整位置 我们就会知道 但是在Android中 没有超时的概念 任何人都可以告诉我们替代方案 我们可以发现 在这么长时间之后 GPS没有位置更新 您可以使用两个线程来实现此超
  • 无法向 openfire 服务器发送消息

    我无法使用 SMACK API 向 openfire 服务器上的 XMPP 客户端发送消息 我不确定我哪里出错了 我在 gtalk 上测试了相同的代码 它工作正常 public class SenderTest public static
  • 更新(合并)时缺少 Spring Data JPA 验证

    我正在使用 Spring Boot 1 5 4 RELEASE 和 Spring Data JPA 进行项目 遇到更新实体时未执行 Hibernate 验证器或至少在某些情况下未验证的问题 For Person如下所示 禁止使用空名称 并且
  • 如何在javafx中通过事件传递参数?

    我有以下示例 我想将参数 文本 与事件一起传递 当单击按钮 bla 时 我该怎么做 EventHandler
  • JPA Criteria API 任意数量的联接/子查询

    我需要使用以下实体构建相交类型查询 为了清楚起见 减少了实体 Entity and other stuff public class Member Id private Long id private String name Entity
  • 安装我的应用程序时的 android 意图

    安装我的应用程序时我需要执行一项操作 我研究过使用 Intent PACKAGE ADDED 但我没有收到正在安装的应用程序中的意图 我想在第一次安装我的应用程序时运行代码 该用例是注册在线服务 我可以列出 BOOT COMPLETED 如
  • BLE:使用 Android / iOS 读取长特征值

    对于正常的特征读取 仅读取 MTU 大小 20 字节 的数据 我的客户将提供更大尺寸 超过 100 字节 的特征 我看到 BLE 提供了 长读取 功能 可以读取直到达到特征的大小 https bluegiga zendesk com ent
  • 如何反序列化数组 google-gson 内的数组

    我有这样的 JSON Answers Locale Ru Name Name1 Locale En Name Name2 Locale Ru Name Name3 Locale En Name Name4 正如你所看到的 我的数组里面有数组
  • “该选择不能在任何服务器上运行”

    我一直在 Eclipse 中开发一个动态 Web 项目 我收到这个错误 该选择不能在任何服务器上运行 早些时候它工作得很好 但现在我收到了这个错误 我删除了服务器并再次添加 Project gt Right Click gt Propert
  • pytube 在 Android 中传输视频所需的时间太长

    我在用pytube在 Android 中流式传输视频 借助chaquopy 视频文件 py from pytube import YouTube def video link yt YouTube f https www youtube c
  • Android:从 Android Java 源代码创建 UML [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以从我的 Java Android 源代码自动创建 Uml 的程序 我测试过ArgoU
  • 如何将 Bundle 转换为 PersistableBundle?

    API21发布了PersistableBundle https developer android com reference android os PersistableBundle html这是系统出于各种目的而保留的捆绑包 JobSc
  • 在 Firebase 中获取用户名、姓氏和 ID

    我使用 firebase 创建了登录 注册 并且工作正常 但我需要从用户那里获取姓名 我怎样才能做到这一点 我想知道是否可以从用户那里获取 ID 因为我想在我的应用程序中创建一个排名页面 因此只有 ID 才是唯一的 要获取唯一 ID 您可以
  • 如何使用放心发送Content-Type表单数据请求?

    我需要使用 Rest Assured 调用表单数据类型 API 这是我的代码 private Map
  • 返回数据集的 kSoap 和 .Net Web 服务

    我知道使用数据集是一个很大的罪恶 但由于该服务不在我的控制之下 并且创建代理服务的前景是不可能的 我想看看是否有人创建了可以使用 kSoap 序列化器反序列化的类结构 或者我是否吸错了东西 同时要启动它 看看是否可行 以下是预期的结果数据
  • 将文件夹中结构化的预构建文件集添加到 android out 文件夹

    我为arm编译了glibc 这与Android glibc或bionic C不同 因为我编译的glibc环境将有助于提供更多api 现在我可以在 Android 运行时将 glibc 环境复制到 system 文件夹中 并且在执行 chro
  • 优化Gson反序列化

    优化反序列化的最佳方法是什么 我目前正在使用标准 Gson toJson 和 Gson fromJson 方法来序列化和反序列化一些复杂对象 我希望尽可能减少反序列化时间 如果重要的话 我的最复杂的对象包含 43 个变量 如果你想使用 Gs
  • 使用java读取行并映射过滤数据[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions publi
  • 在 WildFly 10 中添加 jar 作为部署

    有没有办法 我们可以将 jar 部署为库 部署WildFly 10就像我们可以做到的那样weblogic服务器 或者我们可以将 jar 放在服务器的任何文件夹中并将这些依赖项定义为provided 我得到了什么部署方式jars on Wil
  • 像 Java 一样覆盖 Objective-C 类中的方法

    我经常使用此语句来扩展类 而不需要编写整个单独的文件 假设 ClassFromFramework 是库中包含的框架的一部分的类 public ClassFromFramework public String myMethod operati

随机推荐

  • 如何更改客户 ID 和订单 ID?

    当前 CustomerID 从 1 开始 而生成的第一个订单已OrderID 100000001 有什么方法可以改变这些字段 所以创建的第一个客户已经 顾客号码900000001并且创建的第一个订单有OrderID 900000001 通过
  • Dagger组件依赖含义

    我正在尝试 Dagger 2 我只是通过测试来了解这个框架 我有一个 ApplicationComponent 需要成为整个应用程序的单例 所以我将其定义如下 Component modules ApplicationModule clas
  • 在 SQL Server 2008 中添加列会锁定表吗?

    我想在大约 1200 万条记录的表上运行以下命令 ALTER TABLE t1 ADD c1 int NULL ALTER TABLE t2 ADD c2 bit NOT NULL DEFAULT 0 我已经在暂存中完成了它 并且时机似乎很
  • 如何在 Swift 中将十六进制数转换为 bin?

    我有字符串变量 var str 239A23F 如何将该字符串转换为二进制数 str toInt 不起作用 您可以使用NSScanner 来自基金会框架 let scanner NSScanner string str var result
  • 如何使x轴上的字体大小变量变小

    我有这段代码来创建条形图 但我想将 x 轴中的名称更改为物种名称 并且我想让字体变小 以便我可以将其全部放入 我尝试过使用cex 功能在各种组合中 但没有起作用 如果有建议我将不胜感激 count lt matrix c 16 102 11
  • Excel 2010 VBA ActiveChart.SetSourceData 失败

    我有一个 Excel VBA 应用程序 该应用程序在 Excel 2003 中运行良好 但在 Excel 2010 中失败 相关代码为 Public Sub Create Chart Dim c Dim OutputText As Stri
  • JUnit 测试时排除 @Component 类的过滤器?

    是否可以排除 Component带注释的类 我想从 JUnit 测试中排除一个特殊的类 我的项目有一个类xEventHandler注释为 Component我不希望 spring 在 junit 测试时使用这个类 我的应用程序 TestCo
  • 按 2 个键对 FireBase 中的数据进行排序

    我构建了游戏应用程序 并将记录保存在 FireBase 的实时数据库中 数据库看看 Ka8xxTgyFB8yYKH50j score 10 seconds 1325 K222xTgyFBF33FD50j score 10 seconds 4
  • 如何使用更少的包绘制二元正态分布的表面和轮廓

    我将绘制二元正态分布的 3D 曲面及其轮廓 可以是任何二元正态分布 我想用persp and contour在我的画中 我在网上搜索了一下 但发现了很多方法 大多数人都使用过一些软件包 但我想以使用更少的软件包甚至不安装任何软件包的方式来执
  • R:rJava 包安装失败

    使用以下命令安装 rJava 时install packages rJava 命令我收到以下错误 checking Java support in R present interpreter usr bin java archiver us
  • 为什么我在比较 Perl 中输入的行时遇到问题?

    我不知道这个简单的交易可能做错了什么 但它不起作用 print OK y or n n ans lt gt print n if ans eq y print ans 我基本上想知道如何测试用户输入 这点代码对我来说不起作用 我只是想打印
  • 嵌套 Javascript Promise - 从 firestore 获取数据

    在过去的三天里 我一直被这个错误困扰 我已经尝试了几乎所有的方法 尝试以 1000 种方式构建承诺 但似乎没有任何效果 也许我正在失去 大局 所以希望新的眼睛能有所帮助 谢谢阅读 我有一个在 Firebase Cloud Functions
  • Angular CLI 可执行文件 (ng) 始终仅显示可用命令的列表

    视窗 角 电子邮件受保护 cdn cgi l email protection节点 v 16 13 1 npm v 8 1 2 ng command 在 Windows CMD 中总是给出可用命令的列表 就像在这样的情况下 ng 但如果我使
  • 如何在本地主机中为 XAMPP 创建有效的 SSL [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我如何使用安全连接 SSL in my XAMPP在窗口中 当我打开 localhost 页面时出现以下错误 连接不安全 在我的 XAMP
  • Protractor:彻底清除浏览数据

    我正在寻找一种使用 Protractor 完全删除所有 cookie 会话 状态 cookie 存储等的方法 基本上 我想在量角器中完成与用户相同的事情 方法是转到 设置 gt 清除浏览数据 browser manage deleteAll
  • CsvHelper 更改日期和时间的输出方式

    我在用CSV助手 https joshclose github io CsvHelper 编写一些 CSV 文件 并希望将日期和时间的格式更改为特定的格式 遵循以下建议https stackoverflow com a 31817621 2
  • React-Native:从剪贴板设置和获取文本时出错

    import React useState from react import SafeAreaView View Text TouchableOpacity StyleSheet from react native import Clip
  • 分类变量的多重共线性

    对于数值 连续数据 为了检测预测变量之间的共线性 我们使用皮尔逊相关系数并确保预测变量之间不相关 但与响应变量相关 但我们怎样才能检测到多重共线性如果我们有一个数据集 其中预测变量都是绝对的 我正在共享一个数据集 我试图找出预测变量是否相关
  • 在 VB.NET 中防止 Math.Round(95.55555555,2) 四舍五入到 95.56

    If I do Math Round 95 55555555 2 在 VB NET 中 结果是95 56 但我希望结果是95 55 有没有办法在 VB NET 中做到这一点 我想我只是想保留小数位 而不是四舍五入 好像Math Trunca
  • 使用 PATH 列出 MediaStore 中的所有音乐

    好吧 我已经在这个项目上工作了几天 我的大部分时间都在研究如何在列表视图或其他东西中列出设备上的所有音乐 我已经搜索了几天并且这简直要了我的命 我确实一度非常接近显示一个文件夹中的所有音乐 但由于大多数人都会有像 artiest 和专辑这样