Как обновить отображение уведомлений изнутри функции

Я использую audio_service и just_audio в своем приложении flutter, которое является радио-плеером, и у меня возникают проблемы с обновлением mediaItem в уведомлении.

Когда я вызываю mediaItem.add(item) из play() или pause(), он работает нормально, но когда я пробую то же самое изнутри функции (той, которую я использую для изменения 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. Я действительно не понимаю, почему, если кто-то может мне это объяснить, это будет хорошо, но, по крайней мере, у меня это работает

0 ответов

Другие вопросы по тегам