I am using AudioManager and I am going to check audio status (start, ready, play, pause, volume and so on). Sometimes onEvents function doesn't work.
AudioManager audioManager = AudioManager.instance;
bool _isLoading;
try {
_isLoading = true;
String result = await audioManager.startInfo(audio, auto: true);
print("start result $result");
audioManager.nextMode(playMode: PlayMode.single);
} catch (e) {
print(e);
}
audioManager.onEvents((events, args) {
print("$events, $args");
switch (events) {
case AudioManagerEvents.start:
_isLoading = true;
break;
case AudioManagerEvents.ready:
_isLoading = false;
break;
case AudioManagerEvents.seekComplete:
print("seek completed");
break;
case AudioManagerEvents.buffering:
_isLoading = false;
break;
case AudioManagerEvents.playstatus:
_isLoading = false;
break;
case AudioManagerEvents.timeupdate:
_isLoading = false;
audioManager.updateLrc(args["position"].toString());
break;
case AudioManagerEvents.error:
_isLoading = false;
break;
case AudioManagerEvents.ended:
audioManager.next();
break;
case AudioManagerEvents.volumeChange:
_volume = audioManager.volume;
break;
default:
_isLoading = false;
break;
}
setState(() {});
});
_isLoading is always true even if audio is playing now.