我正在尝试使用just_audio和audio_service制作音乐应用程序,但我坚持实现onAddQueueItem
功能。我找不到在just_audio上附加/修改队列的方法,只能找到如何通过player.setAudioSource
使用新播放列表重新加载just_audio。
我是否打算使用player.setAudioSource
来更改当前队列还是缺少某些内容?
队列/播放列表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);
}