0

我在作为广播播放器的颤振应用程序上使用 audio_service 和 just_audio,但在更新通知上的 mediaItem 时遇到问题。

当我从 play() 或 pause() 中调用 mediaItem.add(item) 时,它可以正常工作,但是当我从函数内部尝试相同的方法(我首先用来修改 mediaItem 的函数)时,它不会更新

代码示例:

  @override
  Future<void> play() async {
    mediaItem.add(item);
    _player.play();
  }

它在那里工作,通知显示更新的项目

但如果我打电话:

updateMediaItems(String album, String title, String artist, String coverUrl) async {
    
      item = MediaItem(
        id: 1,
        album: album,
        title: title,
        artist: artist,
        artUri: Uri.parse(coverUrl),
      );
    }
    mediaItem.add(item);
}

项目本身已正确更新但未显示在通知中如果有人可以帮助我了解问题出在哪里,我一直在环顾四周并尝试了很多但没有得到它(这是我第一个使用颤振的应用程序)

更新 :

我只是尝试从我的 play() 函数内部调用该函数,如下所示:

@override
  Future<void> play() async {
    updateMediaItems('','test title','','default');
    _player.play();
  }

通过这样做,它可以工作。

最后更新

我尝试从我的 AudioHandler 类中调用该函数并且它有效。似乎问题在于我是从我的 PageManager 类中调用它的。我真的不明白为什么,如果有人可以向我解释它会很好,但至少我让它工作

4

0 回答 0