Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

renderer: store: remember random play order #139

Merged
merged 2 commits into from
Jul 10, 2023
Merged

Conversation

YuziO2
Copy link
Contributor

@YuziO2 YuziO2 commented Jun 26, 2022

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

@rocka
Copy link
Member

rocka commented Jun 27, 2022

首先感谢你的贡献 😆

@rocka
Copy link
Member

rocka commented Jul 10, 2023

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

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

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

@rocka rocka changed the title add a queue to manage the random play list renderer: store: remember random play order Jul 10, 2023
@rocka rocka merged commit 6904f4a into Rocket1184:master Jul 10, 2023
@YuziO2
Copy link
Contributor Author

YuziO2 commented Jul 10, 2023

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

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants