我想问,当歌曲结束时,在just_audio flutter包中做一些事情时,是否有任何流可以听,或者有什么方法可以做到这一点?
查看文档,AudioPlayer实例有一个名为playerState或playerStateStream的字段(如果您想侦听事件(。可以使用具有processingState字段的流来侦听playerStateStream。此字段包含您需要的所有信息(这是列表(。如果处理状态已完成,则玩家已完成游戏。
示例:
_player.playerStateStream.listen((playerState) {
if (playerState.processingState == ProcessingState.completed) {
// Some Stuff
}
});
为了增强Afridi的回答:可以订阅另一个流playbackEventStream
,以获取播放列表中各个音频源的更新。这是一个如何更新歌曲名称的示例:
player.playbackEventStream.listen((e) => updateCurrentSong());
...
void updateCurrentSong() {
setState(() {
final int index = player.currentIndex ?? 0;
currentSong = "${player.audioSource?.sequence[index].tag}";
});
}