Android: 构建带有歌曲队列的音乐播放器的最佳方法是什么?

Android: What is the best way for building a music player with songs queue?

目前我正在开发一个音乐播放器项目。音乐播放器将类似于现有的音乐播放器。我的设计就像我有一个 mainActivity,在 mainactivity 中有一个带有 5 个不同选项卡(歌曲、艺术家、专辑、流派、播放列表片段)的 viewpager。 我开始研究 Songs Fragment。我有一个 recyclerview,它将从设备中填充歌曲。目前我所做的是创建一个歌曲 class 作为记录结构,为 recyclerview 创建适配器并创建一个歌曲 ArrayList,它将保存包含歌曲详细信息的歌曲对象,基本设计。 我应该用相同的设计完成其他片段,所以我将以每个片段的不同 ArrayList 结束。以及我应该如何处理不同片段的音乐播放。例如,如果用户从 Songs 片段中选择要播放的歌曲,那么我想要一个默认的 "Now playing" 队列,它将成为默认的歌曲片段列表,它可以自动播放下一首歌曲。同样,如果用户从艺术家中选择,那么只有那些艺术家的歌曲应该在正在播放队列中。 所以要实现这一点,我应该为单个片段维护不同的列表还是有更好的方法?如果有人能帮助我,那就太好了。干杯!

很简单...在 recyclerview 适配器上单击, 将歌曲数组列表和当前点击的位置传递给服务 class,然后从服务 class 播放当前并尽快完成播放下一个位置

像这样:

      OnClick {
                service.playmusic(adapter.           getsonglist(), current clicked pos)
        }

在服务中 class 你得到了 arraylist 和 pos

也这样做

List<song> playlist = new ArrayList<>();
      playlist = songlist //this is from adpter click 
      Song song = playlist.get(position) // current position from clicked adapter.

最后在mediaplayer.set数据源中设置id或path(); 准备异步或同步并播放。

onCompletion 检查播放列表是否完成如果完成并有数据然后播放下一个位置。

此外,您可以在播放屏幕的队列列表中将此播放列表显示为队列列表。

希望这会解决您的问题:)