You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据isPlaying状态控制nextTrack()与prevTrack()函数的执行逻辑?

解决方案

这其实很容易实现,只需要在nextTrack()和prevTrack()里根据isPlaying的状态来决定要不要调用playTrack()就好啦。我帮你修改了代码,还顺便修正了原代码里的一个小bug,具体如下:

function nextTrack() { 
    if (track_index < track_list.length - 1) track_index += 1; 
    else track_index = 0; 
    loadTrack(track_index); 
    // 根据当前播放状态决定是否自动播放新曲目
    if (isPlaying) {
        playTrack();
    }
}
function prevTrack() { 
    if (track_index > 0) track_index -= 1; 
    else track_index = track_list.length - 1; // 修正原代码索引越界的bug
    loadTrack(track_index); 
    // 根据当前播放状态决定是否自动播放新曲目
    if (isPlaying) {
        playTrack();
    }
}

逻辑说明

  • 核心改动就是在加载完新曲目后,增加了if (isPlaying)的判断:如果当前处于播放状态,就自动播放刚加载的新曲目;如果当前是暂停状态,就只加载曲目但不播放,保持暂停状态。
  • 另外提一下原prevTrack()里的小问题:当track_index已经是0时,原代码设置track_index = track_list.length会导致数组索引越界(数组最后一项的索引是track_list.length - 1),所以我把这部分修正了,避免出现报错。

这样修改后就完全符合你想要的逻辑啦~

内容的提问来源于stack exchange,提问作者seth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 06:27:44