APlayer 中文文档 下载 App

APlayer 循环模式与播放顺序

循环模式 loop

loop 参数控制播放器播放到列表末尾(或单曲播完)后怎么办。有三个可选值:

取值含义效果
'all'全部循环播完列表最后一首后自动回到第一首继续
'one'单曲循环当前歌曲播完后自动重新播放当前歌曲
'none'不循环播完列表最后一首后停止播放

播放顺序 order

order 参数控制从一首歌切到下一首歌时,选择列表里的哪一首。有两个可选值:

取值含义效果
'list'顺序播放严格按 audio 数组里的先后顺序切换
'random'随机播放每次切换随机选一首,可能重复选到已播过的

两者的组合效果

循环模式和播放顺序是两个独立维度,可以自由组合:

组合效果
loop: 'all' + order: 'list'按顺序播完一整轮后重头再来
loop: 'all' + order: 'random'随机播,永不停止(每首播完随机挑下一首)
loop: 'one' + order: 'list'单曲重复(order 被忽略,因为一直停在同一首)
loop: 'one' + order: 'random'同上面,order 被忽略
loop: 'none' + order: 'list'按顺序播一遍,最后一首播完停止
loop: 'none' + order: 'random'随机播,每首只播一次,全部播完停止

默认值

也就是说,默认行为是"按数组顺序无限循环播放全部歌曲"。

运行时切换

你可以在初始化之后通过 API 或重新赋值来切换:

// 方式一:直接修改属性后触发重新渲染
ap.options.loop = 'one';   // 切成单曲循环
ap.options.order = 'random'; // 切成随机顺序
// 注:修改后需要点击一次按钮或重新播放才会生效

实际上,通过 APlayer 内部按钮切换循环和顺序更直接——界面上有专门的按钮让用户手动切换。APlayer 会记住用户的选择(通过 localStorage)。

用户记忆

重要:APlayer 会通过 localStorage 记住用户的循环和顺序选择。用户在界面上切换后,下次加载页面时会自动恢复用户上次的选择,覆盖初始化时传入的 loop 和 order 默认值。

如果你希望强制使用代码里设定的值而不让用户记忆覆盖,可以改用一个自定义的 storageName 或者在初始化前清除 localStorage:

localStorage.removeItem('aplayer-setting'); // 清除上次的用户设置
const ap = new APlayer({
    loop: 'none',
    order: 'list',
    // ...
});