高效获取 MediaStore 中音频文件的流派
我正在尝试同步我自己的曲目和专辑数据库(包含附加数据)。到目前为止,我已成功从 MediaStore 中提取专辑和曲目。
我无法正确执行的是拉动曲目的流派。有人可以发布一些代码吗?我想避免查询每个曲目的数据库,因此如果可能的话,一些加载关联的代码(Genre.id <-> Audio.id)会很棒。
我正在努力解决的是使用内容提供商来获取 Genres.Members 信息。
I am trying to synchronize my own database for tracks and albums (that contains additional data). I have so far successfully pulled albums and tracks from the MediaStore.
What I cannot manage to do properly is to pull the Genres for the tracks. Could someone post some code? I'd like to avoid querying the database for each track, so if possible some code to load the association (Genre.id <-> Audio.id) would be great.
What I am struggling on is using the content provider to get the Genres.Members info.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会看看 Ringdroid 的优秀创建者是如何做到这一点的。 http://ringdroid.googlecode.com/svn -history/r37/trunk/src/com/ringdroid/SongMetadataReader.java
他们基本上首先检索流派名称和 ID,并使用它们可以轻松创建一个 content_uri,仅检索数据库中与这些流派匹配的歌曲。
但如果我是你,我会检查 id3 标签中不包含流派名称的文件是否存在“未知”或“空”流派
I'd take a look at how the excellent creators of ringdroid do this. http://ringdroid.googlecode.com/svn-history/r37/trunk/src/com/ringdroid/SongMetadataReader.java
They basically start by retrieving the genres names and ids and using those they can easily create a content_uri that retrieves only songs in the database that matches those genres.
But if I were you I would check whether there is an "unknown" or "empty" genre or not for the files that contain no Genre name in their id3 tag
所以我最终做的是使用加载器和以下查询获取 SD 上的所有音频文件:
然后检查它们是否以 .mp3 结尾,然后使用 jaudiotagger 并读取流派的 ide3 标签。
So what I ended up doing is getting all audio files on the sd with a loader and following query:
Then i check if they end with .mp3 and I then use jaudiotagger and read the ide3 tags for genre.