Just_audio 0.10.0版本播放列表随机播放功能失效求助
兄弟我太懂这种核心功能突然罢工的糟心了!我之前折腾just_audio的播放列表和随机播放也踩过不少坑,结合你说的情况——用了好几年、之前shuffle正常,现在升级到0.10.0发现失效(还发现其实更早之前就坏了),给你捋捋几个大概率能解决问题的排查方向:
先检查播放列表的构建逻辑:0.10.0版本对
AudioSources做了不少改动,官方现在推荐用ConcatenatingAudioSource来管理播放列表,如果你还在沿用旧版本的Playlist构建方式,很可能导致shuffle不生效。要确保你是正确创建了ConcatenatingAudioSource实例,并且把所有音频项都成功添加进去了,而不是用了废弃的API。确认shuffle的调用时机:别太着急调用
musicPlayer.setShuffleModeEnabled(true)!一定要等播放列表加载完成之后再开随机——比如在player.load(audioSource)的回调完成后再设置shuffle,不然播放器还没拿到完整的播放列表,随机功能自然没法工作。检查shuffle和循环模式的搭配:如果你的循环模式设成了
LoopMode.one(单曲循环),那就算开了shuffle也不会有效果。记得把循环模式设为LoopMode.all,再配合shuffle开启,这样才能让播放器在整个列表里随机播放。回退版本做验证:你说发现之前就坏了,那可以先临时回退到0.9.x的稳定版本试试,如果回退后shuffle正常,那肯定是你升级到0.10.0时代码适配没做好;如果回退了还是坏的,那大概率是你之前的代码里有隐藏bug——比如某个地方意外重置了shuffle状态,或者播放列表的数据源出了问题(比如有重复项、空项)。
打开日志找线索:把just_audio的日志输出打开,看看有没有关于shuffle或者播放列表的错误提示,比如有没有音频项加载失败,或者shuffle被自动禁用的日志,这些细节往往能帮你快速定位问题。
对了,你只贴了播放器的初始化代码,能不能把你构建播放列表、调用shuffle的完整代码片段贴出来呀?这样能更精准地揪出问题所在!
备注:内容来源于stack exchange,提问作者under

