歌曲添加到队列未播放(使用 just_audio 和 audio_service)

Posted

技术标签:

【中文标题】歌曲添加到队列未播放(使用 just_audio 和 audio_service)【英文标题】:Song Added To Queue not Playing (Using just_audio and 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()不被注释掉,会很好用

请问我错过了什么?

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于歌曲添加到队列未播放(使用 just_audio 和 audio_service)的主要内容,如果未能解决你的问题,请参考以下文章

Flutter audio_service 设置评分

将歌曲添加到 Spotify 队列 Android 不会自动播放下一首歌曲

在 Spotify Desktop 中将歌曲添加到播放队列

Flutter音频播放插件just_audio入门指南

Flutter音频播放插件just_audio入门指南

通过 Web API 在 Spotify 播放器上排队歌曲