electron-netease-cloud-music
electron-netease-cloud-music copied to clipboard
add a queue to manage the random play list
本人大二学生一枚,初次接触vue和electron,写的有不好的地方请提出。 我在随机播放时发现无法回听,或者说回听无法使用的现象,遂来issue查看,看到果然有类似的 #50 然后发现已经是3年前的提案了。。。于是决定自己实现了提PR,经过一下午和一晚上的捣鼓,经过我的测试,终于已经可用了。 使用一个数组来管理已经听过的随机到的歌。
首先感谢你的贡献 😆
终于有时间来处理这个了 😂
我的实现保留了用数组记录随机顺序,其它的地方基本上都改掉了 ... 主要更改的地方有:
- 把读取随机顺序数组的操作提取成新的 action
playTrackOffset
,替代了以前的playNextTrack
和playPreviousTrack
。这样只有一个地方读取随机顺序,方便管理 - 把之前的
playTrackIndex
作为用户手动点击播放列表中的歌曲时的专用 action ,这时候不需要读取随机顺序,而且调用它时会重新生成随机顺序列表 - 只在
queue.loopMode === LOOP_MODE.RANDOM
的时候才生成随机顺序数组 - 如果应用启动时就是随机播放状态,立即生成一次随机数组
- 播放列表中插入/删除歌曲后,根据增删的位置和数量调整随机列表,这部分逻辑看起来似乎很简单,但我还是花了一段时间才完全理清楚 ...
终于有时间来处理这个了 😂
我的实现保留了用数组记录随机顺序,其它的地方基本上都改掉了 ... 主要更改的地方有:
- 把读取随机顺序数组的操作提取成新的 action
playTrackOffset
,替代了以前的playNextTrack
和playPreviousTrack
。这样只有一个地方读取随机顺序,方便管理- 把之前的
playTrackIndex
作为用户手动点击播放列表中的歌曲时的专用 action ,这时候不需要读取随机顺序,而且调用它时会重新生成随机顺序列表- 只在
queue.loopMode === LOOP_MODE.RANDOM
的时候才生成随机顺序数组- 如果应用启动时就是随机播放状态,立即生成一次随机数组
- 播放列表中插入/删除歌曲后,根据增删的位置和数量调整随机列表,这部分逻辑看起来似乎很简单,但我还是花了一段时间才完全理清楚 ...
太强啦,我都快忘了这个事了🤪