我正在尝试听一个流,以了解音频何时结束。
player.playbackEventStream.asBroadcastStream().listen((data) {
print("Event: ${data.toString()}");
},onDone: () {
print("Done:");
})
它只发射一次。。。我试了试不同的溪流,但找不到合适的。
您可能想要收听两个不同的事件:
- 到达当前播放列表项的末尾后自动前进到下一个播放列表项
- 到达播放列表中最后一个项目的末尾时完成播放
收听自动前进:
player.positionDiscontinuityStream.listen((discontinuity) {
if (discontinuity.reason == PositionDiscontinuityReason.autoAdvance) {
print('Finished current track, continuing onto next');
}
});
收听播放完成:
player.processingStateStream.listen((state) {
if (state == ProcessingState.completed) {
print('Reached end of last item - playback completed');
}
});
如果你只有一个项目要播放,并且你没有循环,那么你只需要听第二个事件。