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; bool audioplayed = false;
int currentpos = 0; int currentpos = 0;
int maxduration = 100; int maxduration = 100;
Duration? durationAudio;
String currentpostlabel = "00:00"; String currentpostlabel = "00:00";
@override @override
@ -34,11 +35,12 @@ class _AudioPlayerFloatingContainerState extends State<AudioPlayerFloatingContai
Future.delayed(Duration.zero, () async { Future.delayed(Duration.zero, () async {
audiobytes = widget.audioBytes; audiobytes = widget.audioBytes;
/*player.onDurationChanged.listen((Duration d) { //get the duration of audio player.durationStream.listen((Duration? d) { //get the duration of audio
maxduration = d.inSeconds; maxduration = d!.inSeconds;
setState(() { durationAudio = d;
print("YOULOUUU duration");
print(d);
}); });
});*/
//player.bufferedPositionStream //player.bufferedPositionStream
@ -48,9 +50,9 @@ class _AudioPlayerFloatingContainerState extends State<AudioPlayerFloatingContai
currentpos = event.inMilliseconds; //get the current position of playing audio currentpos = event.inMilliseconds; //get the current position of playing audio
//generating the duration label //generating the duration label
int shours = Duration(milliseconds:currentpos).inHours; int shours = Duration(milliseconds:durationAudio!.inMilliseconds - currentpos).inHours;
int sminutes = Duration(milliseconds:currentpos).inMinutes; int sminutes = Duration(milliseconds:durationAudio!.inMilliseconds - currentpos).inMinutes;
int sseconds = Duration(milliseconds:currentpos).inSeconds; int sseconds = Duration(milliseconds:durationAudio!.inMilliseconds - currentpos).inSeconds;
int rminutes = sminutes - (shours * 60); int rminutes = sminutes - (shours * 60);
int rseconds = sseconds - (sminutes * 60 + shours * 60 * 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( /*Column(
children: [ children: [