Show duration left in icon (floating audio player)

This commit is contained in:
Fransolet Thomas 2023-03-30 17:16:03 +02:00
parent ee8342350e
commit ca7157af62

View File

@ -27,6 +27,7 @@ class _AudioPlayerFloatingContainerState extends State<AudioPlayerFloatingContai
bool audioplayed = false;
int currentpos = 0;
int maxduration = 100;
Duration? durationAudio;
String currentpostlabel = "00:00";
@override
@ -34,11 +35,12 @@ class _AudioPlayerFloatingContainerState extends State<AudioPlayerFloatingContai
Future.delayed(Duration.zero, () async {
audiobytes = widget.audioBytes;
/*player.onDurationChanged.listen((Duration d) { //get the duration of audio
maxduration = d.inSeconds;
setState(() {
});
});*/
player.durationStream.listen((Duration? d) { //get the duration of audio
maxduration = d!.inSeconds;
durationAudio = d;
print("YOULOUUU duration");
print(d);
});
//player.bufferedPositionStream
@ -48,9 +50,9 @@ class _AudioPlayerFloatingContainerState extends State<AudioPlayerFloatingContai
currentpos = event.inMilliseconds; //get the current position of playing audio
//generating the duration label
int shours = Duration(milliseconds:currentpos).inHours;
int sminutes = Duration(milliseconds:currentpos).inMinutes;
int sseconds = Duration(milliseconds:currentpos).inSeconds;
int shours = Duration(milliseconds:durationAudio!.inMilliseconds - currentpos).inHours;
int sminutes = Duration(milliseconds:durationAudio!.inMilliseconds - currentpos).inMinutes;
int sseconds = Duration(milliseconds:durationAudio!.inMilliseconds - currentpos).inSeconds;
int rminutes = sminutes - (shours * 60);
int rseconds = sseconds - (sminutes * 60 + shours * 60 * 60);
@ -148,7 +150,19 @@ class _AudioPlayerFloatingContainerState extends State<AudioPlayerFloatingContai
});
}
},
child: isplaying ? const Icon(Icons.pause) : const Icon(Icons.play_arrow),
child: isplaying ? Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Icon(Icons.pause),
Text(currentpostlabel),
],
) : audioplayed ? Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Icon(Icons.play_arrow),
Text(currentpostlabel),
],
): const Icon(Icons.play_arrow),
/*Column(
children: [