Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 20 additions & 24 deletions example/lib/waveforms_dashboard.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import 'dart:math';

import 'package:audioplayers/audioplayers.dart';
import 'package:example/load_audio_data.dart';
import 'load_audio_data.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
Expand Down Expand Up @@ -36,7 +36,7 @@ class WaveformsDashboard extends StatefulWidget {
class _WaveformsDashboardState extends State<WaveformsDashboard> {
late Duration maxDuration;
late Duration elapsedDuration;
late AudioCache audioPlayer;
late AudioPlayer audioPlayer;
late List<double> samples;
double sliderValue = 0;
// Change this value to number of audio samples you want.
Expand All @@ -50,16 +50,16 @@ class _WaveformsDashboardState extends State<WaveformsDashboard> {

List<List<String>> audioDataList = [
[
'assets/dm.json',
'dance_monkey.mp3',
'../assets/dm.json',
'../assets/dance_monkey.mp3',
],
[
'assets/soy.json',
'shape_of_you.mp3',
'../assets/soy.json',
'../shape_of_you.mp3',
],
[
'assets/sp.json',
'surface_pressure.mp3',
'../assets/sp.json',
'../surface_pressure.mp3',
],
];

Expand All @@ -77,13 +77,12 @@ class _WaveformsDashboardState extends State<WaveformsDashboard> {
}

Future<void> playAudio() async {
await audioPlayer.load(audioData[1]);
await audioPlayer.play(audioData[1]);
//await audioPlayer.load(audioData[1]);
await audioPlayer.play(UrlSource(audioData[1]));
// maxDuration in milliseconds
await Future.delayed(const Duration(milliseconds: 200));

int maxDurationInmilliseconds =
await audioPlayer.fixedPlayer!.getDuration();
int maxDurationInmilliseconds = (await audioPlayer.getDuration()) as int;

maxDuration = Duration(milliseconds: maxDurationInmilliseconds);
}
Expand All @@ -93,23 +92,21 @@ class _WaveformsDashboardState extends State<WaveformsDashboard> {
// TODO: implement initState
super.initState();
audioData = audioDataList[0];
audioPlayer = AudioCache(
fixedPlayer: AudioPlayer(),
);
audioPlayer = AudioPlayer();

parseData();

samples = [];
maxDuration = const Duration(milliseconds: 1000);
elapsedDuration = const Duration();

audioPlayer.fixedPlayer!.onPlayerCompletion.listen((_) {
audioPlayer.onPlayerComplete.listen((_) {
setState(() {
elapsedDuration = maxDuration;
sliderValue = 1;
});
});
audioPlayer.fixedPlayer!.onAudioPositionChanged.listen((Duration p) {
audioPlayer.onPositionChanged.listen((Duration p) {
setState(() {
elapsedDuration = p;
sliderValue = p.inMilliseconds / maxDuration.inMilliseconds;
Expand Down Expand Up @@ -273,13 +270,13 @@ class _WaveformsDashboardState extends State<WaveformsDashboard> {
// await audioPlayer.fixedPlayer!.resume();
},
onChangeStart: (double value) async {
await audioPlayer.fixedPlayer!.pause();
await audioPlayer.pause();
},
onChanged: (val) {
setState(() {
sliderValue = val;

audioPlayer.fixedPlayer!.seek(Duration(
audioPlayer.seek(Duration(
milliseconds:
(maxDuration.inMilliseconds * val).toInt()));
});
Expand Down Expand Up @@ -312,7 +309,7 @@ class _WaveformsDashboardState extends State<WaveformsDashboard> {
children: [
ElevatedButton(
onPressed: () {
audioPlayer.fixedPlayer!.pause();
audioPlayer.pause();
},
child: const Icon(
Icons.pause,
Expand All @@ -323,8 +320,8 @@ class _WaveformsDashboardState extends State<WaveformsDashboard> {
),
ElevatedButton(
onPressed: () async {
if (audioPlayer.fixedPlayer!.state == PlayerState.PAUSED) {
audioPlayer.fixedPlayer!.resume();
if (audioPlayer.state == PlayerState.paused) {
audioPlayer.resume();
} else {
await playAudio();
}
Expand All @@ -338,8 +335,7 @@ class _WaveformsDashboardState extends State<WaveformsDashboard> {
onPressed: () {
setState(() {
sliderValue = 0;
audioPlayer.fixedPlayer!
.seek(const Duration(milliseconds: 0));
audioPlayer.seek(const Duration(milliseconds: 0));
});
},
child: const Icon(Icons.replay_outlined),
Expand Down