init method
Implementation
@override
Future<void> init() async {
await notify(PlayerEvent.init);
// reset the prefix of assets
player.audioCache.prefix = "";
// needBoot((){
// Player.boot();
// print("Player.boot");
// });
await setMedia(media);
// await player.audioCache.clearAll();
subscriptions.addAll([
player.onPositionChanged.listen((Duration position) async {
_position = position;
await notify(PlayerEvent.position);
// if (position == duration) {
// notify(PlayerEvent.end);
// }
}),
player.onPlayerStateChanged
.listen((audioplayers.PlayerState status) async {
if (status == audioplayers.PlayerState.playing) {
_status = PlayerStatus.playing;
} else if (status == audioplayers.PlayerState.paused) {
_status = PlayerStatus.paused;
} else if (status == audioplayers.PlayerState.stopped) {
_status = PlayerStatus.stopped;
} else if (status == audioplayers.PlayerState.completed) {
_status = PlayerStatus.ended;
}
await notify(PlayerEvent.status);
}),
player.onDurationChanged.listen((Duration duration) async {
_duration = duration;
await notify(PlayerEvent.duration);
}),
]);
if (autoPlay) {
await play();
}
await super.init();
}