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

时间:2017-05-31 06:51:59

标签: android audio-player android-music-player

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

1 个答案:

答案 0 :(得分:0)

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

像这样:

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

在服务类中你有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或路径;       准备异步或同步和播放。

onCompletion检查播放列表是否完成,如果已完成,则数据会播放到下一个位置。

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

希望,这将清除你的问题:)