这与GitHub上的android-UniversalMusicPlayer Sample有关。
我设法使用MusicService.java中的以下内容(以及其他未提及的方法)创建歌曲列表(按标题分组):
res.status(200).sendfile(URL);
然后是一个包含这样描述的子列表:
...
List<MediaBrowserCompat.MediaItem> mediaItems = new ArrayList<>();
...
// Song titles root view
if (MEDIA_ID_ROOT.equals(parentMediaId)) {
LogHelper.d(TAG, "OnLoadChildren.ROOT");
mediaItems.add(new MediaBrowserCompat.MediaItem(
new MediaDescriptionCompat.Builder()
.setMediaId(MEDIA_ID_MUSICS_BY_TITLE)
.setTitle(getString(R.string.browse_song_titles))
.setIconUri(Uri.parse("android.resource://" +
getPackageName() + "/drawable/ic_by_title"))
.setSubtitle(getString(R.string.browse_song_titles_subtitle))
.build(), MediaBrowserCompat.MediaItem.FLAG_BROWSABLE
));
}
...
// Other lists
但这种方法的问题在于,虽然它确实生成了列表,但onPlayFromMusicID调用只会在列表中找到该单个项目。
有没有办法实现只有一级深度的歌曲列表(按歌曲标题分组)(意思是 - &gt;打开应用,选择歌曲&gt; [all_songs]列出 - 然后点击其中一个将播放同时从该位置继续播放列表)同时允许QueueHelper.java也能够构建播放列表?