歌曲添加到队列未播放(使用 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)的主要内容,如果未能解决你的问题,请参考以下文章