我尝试updateQueue([])
重置队列(不起作用(。我之所以想这样做,是因为我在skipToNext上添加了mediaItem
,就像在下面一样
mediaItem.add(
MediaItem(
id: lecture.url!,
title: lecture.name!,
artUri: Uri.parse(bookArt),
artist: "artist",
album: bookName
)
);
_player.seekToNext();
每当我播放任何音频时,它都从我离开队列的地方开始,这显然意味着我必须清除队列。那么我该怎么做呢?
我使用的包是audio_service一个隔离分支
您可以将此函数放在访问/使用队列的同一类中。如果你遵循@XiaoHui提到的教程,你可能应该把它放在audio_handler.dart文件中。这个函数的优点是你根本不必担心潜在的指数!
void clearQueue() {
while (queue.value.length > 0) {
queue.value.removeLast();
}
}
如果您遵循本教程Suragch。在page_manager.dart
中,您将看到remove()
功能
void remove() {
final lastIndex = _audioHandler.queue.value.length - 1;
if (lastIndex < 0) return;
_audioHandler.removeQueueItemAt(lastIndex); }
此函数从AudioService queue
和JustAudio playlist
中删除最后一项。
因此,您可以循环播放列表并调用remove()
。它将清除所有playlist
和queue
。
for (int i = 0; i < playlist.length; i++) {
remove();
}
希望这能回答你的问题!