首页 > 解决方案 > 如何修改 just_audio 中的队列?

问题描述

我正在尝试使用 just_audio 和 audio_service 制作音乐应用程序,但我一直在实现该onAddQueueItem功能。我找不到在 just_audio 上附加/修改队列的方法,只有如何通过player.setAudioSource.

我是打算player.setAudioSource用来更改当前队列还是我错过了什么?

标签: flutterjust-audio

解决方案


队列/播放列表是在 just_audio 中通过创建一个ConcatenatingAudioSource提供一个一个接一个地播放的音频源列表来实现的。该类的文档列出了以下方法,几乎​​所有这些方法都处理附加/修改队列:

  • 添加
  • 全部添加
  • 清除
  • 插入
  • 全部插入
  • 移动
  • 删除时间
  • 删除范围
  • toJson(这个不相关)
  • toString(这个不相关)

因此,您在实施时想要onAddQueueItem的是第一个,add

Future<void> onAddQueueItem(MediaItem mediaItem) async {
  // Add it to the player
  await concatenatingAudioSource.add(AudioSource.uri(Uri.parse(mediaItem.id)));
  // Broadcast the state change to clients
  queue.add(mediaItem);
  await AudioServiceBackground.setQueue(queue);
}

推荐阅读