简聆音乐现在已经能进行播放了,那么如果用户希望接下来播放指定的一首歌曲呢?
这就需要实现稍后播功能了
首先要在音乐列表加入一个按钮,如下图
用户点击了加号按钮后,表示下一曲要播放这首指定的歌曲。
因为这个页面是Activity
而播放音乐是在service里进行的
所以需要将这个稍后播的歌曲传入service中去
具体实现步骤如下:
1:给recycleview的加号按钮做一个点击监听
点击这个按钮后,将这个按钮的position以广播方式传入service
2:定义一个稍后播的集合
用来存储传入的position集合
/** * 稍后播音乐列表 */ public List<Integer> waitPlaymusicList;对这个列表进行初始化
waitPlaymusicList = new ArrayList<Integer>();//初始化稍后播列表对象
3:接收到广播后这样处理:
case "waitplaymusic"://稍后播放广播 int waitindex = intent.getIntExtra("waitplaymusicposition", -1);//稍后播放的歌曲号码 //加入到稍后播列表 waitPlaymusicList.add(waitindex); break;
最后一步,在需要的地方进行判断
比如下一曲和播放完成后,判断这个集合是否有内容
如果有,先播放这个position所代表的歌曲
没有则执行相关的播放逻辑。
因为这里还没有实现单曲循环和随机播放
所以没有稍后播的话就是顺序播放
注意,播放稍后播的音乐时,记得移除掉稍后播里的第一个数据
代表这首歌曲已经在播放了。