【问题标题】:How can i clear the queue of media item in audio_service如何清除 audio_service 中的媒体项队列
【发布时间】:2022-01-10 07:43:06
【问题描述】:

我尝试updateQueue([]) 来重置队列(这不起作用)。我为什么要这样做是因为我在下面的skipToNext上添加mediaItem

mediaItem.add(
   MediaItem(
     id: lecture.url!,
     title: lecture.name!,
     artUri: Uri.parse(bookArt),
     artist: "artist",
     album: bookName
   )
 );
_player.seekToNext();

每当我播放任何音频时,它都会从我离开队列的任何地方开始,这显然意味着我必须清除队列。那我该怎么做呢?

我使用的包是audio_service one-isolate 分支

【问题讨论】:

    标签: flutter just-audio audio-service


    【解决方案1】:

    如果您通过 Suragch 关注 this tutorial。在page_manager.dart 你会看到remove() 函数

      void remove() {
        final lastIndex = _audioHandler.queue.value.length - 1;
        if (lastIndex < 0) return;
        _audioHandler.removeQueueItemAt(lastIndex);  }
    

    此函数从AudioService queueJustAudio playlist 中删除最后一项。

    因此,您可以循环播放播放列表并致电remove()。它将清除所有playlistqueue

    for (int i = 0; i < playlist.length; i++) {
      remove();
    }
    

    希望这能回答你的问题!

    【讨论】:

    • 是的,当没有任何可用的开箱即用时,这是一个显而易见的方法,但无论如何谢谢?
    • 如果我们一一删除,它就可以工作了。没有清除全部或全部删除的界面。如果你循环,你会得到超出范围索引错误。例如,如果您在播放列表中有两个项目,第一个项目将被删除,但第二个项目将给您输出或范围异常,因为 List 的长度为 1,最后一个索引为零。 @GurkernSingh 我可以知道你如何清空播放列表。谢谢。
    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多