高效获取MediaStore中音频文件的类型

时间:2011-02-03 17:07:49

标签: android audio mediastore

我正在尝试为轨道和相册(包含其他数据)同步我自己的数据库。到目前为止,我已成功从MediaStore中取出专辑和曲目。

我无法正常做的是为音轨拉动音乐。有人可以发布一些代码吗?我想避免查询每个轨道的数据库,所以如果可能的话,加载关联的一些代码(Genre.id< - > Audio.id)会很棒。

我正在努力的是使用内容提供商获取Genres.Members信息。

2 个答案:

答案 0 :(得分:2)

我将看看ringdroid的优秀创作者是如何做到这一点的。 http://ringdroid.googlecode.com/svn-history/r37/trunk/src/com/ringdroid/SongMetadataReader.java

他们基本上从检索流派名称和ID开始,并使用那些他们可以轻松创建的content_uri,只检索数据库中与这些流派相匹配的歌曲。 但如果我是你,我会检查是否存在“未知”或“空”类型,或者不包含其id3标签中不包含类型名称的文件

答案 1 :(得分:0)

所以我最终做的是使用加载器和后续查询获取sd上的所有音频文件:

        loader = new CursorLoader(mActivity, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
                new String[] {Audio.Media._ID, Audio.Media.DATA}, 
                null, null, null);

然后我检查它们是否以.mp3结尾然后我使用jaudiotagger并读取类型的ide3标签。