外部简易播放器对内部音乐播放器的操作
对于原生音乐播放器而言,当我们从播放页面跳回到其他页面的时候,一般在页面底部会有一个简易的音乐播放窗口,用户可以在此窗口进行一些简单的操作,比如切歌、暂停等,故自己也打算写一下这块的功能。
思路:
1.可以定义两个背景音乐api变量
什么意思呢?即播放页一个,外部又一个,当我在播放页播放的时候,使用的是播放页内部的背景音乐变量,跳出去之后,如果进行了比如切歌等操作,此时就把播放页的api变量销毁,然后保存当前音乐的一些播放信息,然后初始化第二个也就是外部的播放api变量,然后进行初始化,随后便是进行播放了。但是这样的话,对于我的项目而言,这样的思路方式必须把一些音乐数据放到app.js中,比如两个api变量,还有比如时间等,这样一来的话,自己的播放页几乎需要100%重构,于是我自己便用了第二个思路。
2.使用pubsub.js第三方库
这个第三方包所实现的功能就是页面之间的通讯,有了这个功能,那么所需要做的事情就少很多了,简单而言,我再外部页面发出数据,然后在播放页接受数据即可,根据接收到的数据进行值判断,不同值做不同事情即可,这样我就不需要定义两个api变量,一个即可。最后的实现效果如图:
只展示样式就行了,切歌和暂停都能实现。这个功能怎么说,最开始想的时候觉得难,但是后来做的时候其实也还好,对了,对于播放页订阅消息的时候,因为我自己是把订阅的函数写到了播放页的onload函数,为了避免每次重新进入播放页的时候都会订阅一次导致订阅栈数据累加,在每次进入的时候我进行了全部数据清理的处理,这样这个bug就消除了。