【问题标题】:Song Added To Queue not Playing (Using just_audio and audio_service)歌曲添加到队列未播放(使用 just_audio 和 audio_service)
【发布时间】:2021-12-17 19:55:29
【问题描述】:

我正在开发一个音频播放器,我想将单个项目传递给队列,我需要做的是将参数传递给控制器​​,然后从那里我能够将它传递给 page_manager,然后,我能够将它添加到队列中,这样做效果很好,但我遇到的问题是, 当我注释掉 _loadPlaylist() 并热重载时,播放器将继续显示加载指示器,但始终显示歌曲名称,但音乐将继续加载

message_player 控制器

我在initState()中调用了下面的方法

addMessageToPlayer({
  required String id,
  required String title,
  required String album,
  required String url,
  required String artUri,
}) {
  final pageManager = getIt<PageManager>();
  pageManager.addMessageToPlayer(
    id: id,
    title: title,
    album: album,
    url: url,
    artUri: artUri,
  );
}

page_manager.dart

在Init() 中我注释掉了_loadPlaylist(),因为我不需要它

void init() async {
//    await _loadPlaylist();
    _listenToPlaybackState();
    _listenToCurrentPosition();
    _listenToBufferedPosition();
    _listenToTotalDuration();
    _listenToChangesInSong();
    _listenToChangesInPlaylist();
  }

这是将控制器中的项目添加到队列中的函数

addMessageToPlayer(
      {required String id,
      required String title,
      required String album,
      required String url,
      required String artUri}) {
    // print('ID came ${id}');
    // print('TITLE came ${title}');
    // print('ALBUM came ${album}');
    // print('URL came ${url}');
    // print('ARTURL came ${artUri}');

    final mediaItem = MediaItem(
      id: id,
      title: title,
      album: album,
      extras: {
        'url': url,
        'artUri': artUri,
      },
    );
    _audioHandler.addQueueItem(mediaItem);
  }

注意:如果_loadPlaylist()不被注释掉,会很好用

请问我错过了什么?

【问题讨论】:

    标签: flutter just-audio audio-service


    【解决方案1】:

    我能够解决这个问题,我所做的是进入 addQueueItem 块并添加 player.setAudioSource(_playlist); 以将音频播放器设置为最新项目

    【讨论】:

      猜你喜欢
      • 2022-12-22
      • 2016-05-04
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-27
      • 2021-03-18
      • 2017-08-04
      相关资源
      最近更新 更多