electron-netease-cloud-music icon indicating copy to clipboard operation
electron-netease-cloud-music copied to clipboard

add a queue to manage the random play list

Open YuziO2 opened this issue 2 years ago • 1 comments

本人大二学生一枚,初次接触vue和electron,写的有不好的地方请提出。 我在随机播放时发现无法回听,或者说回听无法使用的现象,遂来issue查看,看到果然有类似的 #50 然后发现已经是3年前的提案了。。。于是决定自己实现了提PR,经过一下午和一晚上的捣鼓,经过我的测试,终于已经可用了。 使用一个数组来管理已经听过的随机到的歌。

YuziO2 avatar Jun 26 '22 15:06 YuziO2

首先感谢你的贡献 😆

rocka avatar Jun 27 '22 02:06 rocka

终于有时间来处理这个了 😂

我的实现保留了用数组记录随机顺序,其它的地方基本上都改掉了 ... 主要更改的地方有:

  1. 把读取随机顺序数组的操作提取成新的 action playTrackOffset ,替代了以前的 playNextTrackplayPreviousTrack 。这样只有一个地方读取随机顺序,方便管理
  2. 把之前的 playTrackIndex 作为用户手动点击播放列表中的歌曲时的专用 action ,这时候不需要读取随机顺序,而且调用它时会重新生成随机顺序列表
  3. 只在 queue.loopMode === LOOP_MODE.RANDOM 的时候才生成随机顺序数组
  4. 如果应用启动时就是随机播放状态,立即生成一次随机数组
  5. 播放列表中插入/删除歌曲后,根据增删的位置和数量调整随机列表,这部分逻辑看起来似乎很简单,但我还是花了一段时间才完全理清楚 ...

rocka avatar Jul 10 '23 11:07 rocka

终于有时间来处理这个了 😂

我的实现保留了用数组记录随机顺序,其它的地方基本上都改掉了 ... 主要更改的地方有:

  1. 把读取随机顺序数组的操作提取成新的 action playTrackOffset ,替代了以前的 playNextTrackplayPreviousTrack 。这样只有一个地方读取随机顺序,方便管理
  2. 把之前的 playTrackIndex 作为用户手动点击播放列表中的歌曲时的专用 action ,这时候不需要读取随机顺序,而且调用它时会重新生成随机顺序列表
  3. 只在 queue.loopMode === LOOP_MODE.RANDOM 的时候才生成随机顺序数组
  4. 如果应用启动时就是随机播放状态,立即生成一次随机数组
  5. 播放列表中插入/删除歌曲后,根据增删的位置和数量调整随机列表,这部分逻辑看起来似乎很简单,但我还是花了一段时间才完全理清楚 ...

太强啦,我都快忘了这个事了🤪

YuziO2 avatar Jul 10 '23 11:07 YuziO2