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

如何为just_audio的ConcatenatingAudioSource指定下一首播放的轨道索引

just_audio官方没有提供名为player.setNextTrackIndex(someIndex)的API,但可以通过以下两种方案实现你的需求,分别对应两种不同的使用场景:

场景1:立刻切换到指定索引的音轨

直接调用player自带的seek方法即可,不需要多次调用seekToNext,示例代码如下:

// 预先保存ConcatenatingAudioSource实例
final playlist = ConcatenatingAudioSource(children: [
  // 你的音轨列表
]);
await player.setAudioSource(playlist);

// 直接跳转到索引为targetIndex的音轨开头,索引从0开始计数
// 如果当前处于播放状态,跳转后会自动开始播放目标音轨
await player.seek(Duration.zero, index: targetIndex);

场景2:修改当前音轨播放结束后自动跳转的下一首

如果你不需要立刻切歌,只是希望当前音轨播完后自动跳到你指定的索引,可通过动态调整播放列表顺序实现:

// 假设当前正在播放的音轨索引为currentIndex
// 你希望下一首播放的音轨索引为customNextIndex
// 将目标音轨移动到当前播放索引的下一位即可
await playlist.move(oldIndex: customNextIndex, newIndex: currentIndex + 1);

注意事项

  • 所有涉及音源操作、seek操作的方法都是异步的,建议添加await等待操作完成,避免出现状态异常
  • 如果开启了随机播放模式,默认的播放顺序会被ShuffleOrder接管,此时如果要自定义下一首,可先关闭随机播放,或者自定义ShuffleOrder实现自定义播放顺序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:18:04