我猜它一定与onLoadChildren方法有关,但我不知道如何通过MediaBrowser获取专辑、歌曲或艺术家。
发布于 2016-05-29 07:14:26
如果您已经有一个扩展MediaBrowserService的服务,那么您可以在onLoadChildren中检索任何元数据。
在你的onLoadChildren中,你应该使用MediaMetadata
包含有关项目的元数据,如标题、艺术家等。
您可以使用MediaDescription从其中检索艺术家、标题等内容
适用于显示的媒体项的一组简单元数据。
@Override
public void onLoadChildren(final String parentMediaId, final Result<List<MediaItem>> result) {
for (MediaMetadata track : mMusicProvider.getMusicsByGenre(genre)) {
// once you have an instance of MediaMetadata, you can retrieve any data you want:
MediaDescription simpleData = track.getDescription();
// or retrieving with a key from its info Bundle:
// android.media.metadata.MEDIA_ID
// android.media.metadata.TRACK_NUMBER
// android.media.metadata.ALBUM
// android.media.metadata.GENRE
// android.media.metadata.TITLE
// android.media.metadata.ARTIST
// android.media.metadata.NUM_TRACKS
// android.media.metadata.DURATION
// android.media.metadata.ALBUM_ART_URI
track.getString( ... );
}
}你可以在this sample中看到更清晰的实现。
发布于 2016-06-03 14:14:38
您可以使用MediaMetadataRetriever从媒体文件中检索详细信息
例如:
MediaMetadataRetriever metaRetriver = new MediaMetadataRetriever();
metaRetriver.setDataSource("/sdcard/audio.mp3");
String artist= metaRetriver .extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
Strng genre = metaRetriver .extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE)发布于 2018-06-25 03:23:46
我在我的应用程序中做了类似的事情,我想在设备上显示现有的歌曲。我的服务在onLoadChildren()方法中返回项目,并且我以分页的方式返回项目,因此我们只获取用户感兴趣的项目。我用的是安卓的新Paging library。我在我编写的post中详细介绍了它,在其中我还使用代码样例演示了解决方案。希望能有所帮助。
https://stackoverflow.com/questions/37461396
复制相似问题