music is working on a android phone

main
Parricc35 2023-02-26 00:32:58 +01:00
parent b38213a1a4
commit 6ed9c23901
1 changed files with 17 additions and 10 deletions

View File

@ -11,14 +11,15 @@ class IntervalTimerPage extends StatefulWidget {
} }
class _IntervalTimerPageState extends State<IntervalTimerPage> { class _IntervalTimerPageState extends State<IntervalTimerPage> {
final Duration _warmupDuration = const Duration(minutes: 5); final Duration _warmupDuration = const Duration(seconds: 5);
final Duration _cooldownDuration = const Duration(minutes: 5); final Duration _cooldownDuration = const Duration(seconds: 5);
final Duration _highIntensityDuration = const Duration(minutes: 4); final Duration _highIntensityDuration = const Duration(seconds: 4);
final Duration _lowIntensityDuration = const Duration(minutes: 3); final Duration _lowIntensityDuration = const Duration(seconds: 3);
late Duration _totalDuration = const Duration(minutes: 35); late Duration _totalDuration = const Duration(minutes: 35);
AudioPlayer warmUpPlayer = AudioPlayer(); AudioPlayer warmUpPlayer = AudioPlayer();
AudioPlayer workoutPlayer = AudioPlayer(); AudioPlayer workoutPlayer = AudioPlayer();
AudioPlayer coolDownPlayer = AudioPlayer(); AudioPlayer coolDownPlayer = AudioPlayer();
final AudioCache _audioCache = AudioCache();
final int _numHighIntensityBlocks = 4; final int _numHighIntensityBlocks = 4;
final int _numLowIntensityBlocks = 3; final int _numLowIntensityBlocks = 3;
@ -49,7 +50,8 @@ class _IntervalTimerPageState extends State<IntervalTimerPage> {
}, },
); );
_isPaused = false; _isPaused = false;
await AudioPlayer().play(UrlSource('assets/go.mp3')); Source source = AssetSource('go.mp3');
await AudioPlayer().play(source);
_timer = Timer.periodic(const Duration(seconds: 1), (_) => _tick()); _timer = Timer.periodic(const Duration(seconds: 1), (_) => _tick());
Future.delayed(const Duration(seconds: 1)).then((value) { Future.delayed(const Duration(seconds: 1)).then((value) {
@ -80,20 +82,23 @@ class _IntervalTimerPageState extends State<IntervalTimerPage> {
} }
Future<void> _playWarmUpMusic() async { Future<void> _playWarmUpMusic() async {
Source source = AssetSource('warmUp.mp3');
await warmUpPlayer.setReleaseMode(ReleaseMode.loop); await warmUpPlayer.setReleaseMode(ReleaseMode.loop);
await warmUpPlayer.play(UrlSource('assets/warmUp.mp3')); await warmUpPlayer.play(source);
} }
Future<void> _playWorkoutMusic() async { Future<void> _playWorkoutMusic() async {
await warmUpPlayer.stop(); await warmUpPlayer.stop();
Future.delayed(const Duration(microseconds: 600)).then((value) async { Future.delayed(const Duration(microseconds: 600)).then((value) async {
Source source = AssetSource('workout.mp3');
await workoutPlayer.setReleaseMode(ReleaseMode.loop); await workoutPlayer.setReleaseMode(ReleaseMode.loop);
await workoutPlayer.play(UrlSource('assets/workout.mp3')); await workoutPlayer.play(source);
}); });
} }
Future<void> _intervalChange() async { Future<void> _intervalChange() async {
await AudioPlayer().play(UrlSource('assets/beep.mp3')); Source source = AssetSource('beep.mp3');
await AudioPlayer().play(source);
} }
void _tick() { void _tick() {
@ -123,14 +128,16 @@ class _IntervalTimerPageState extends State<IntervalTimerPage> {
_currentDuration = _cooldownDuration; _currentDuration = _cooldownDuration;
() async { () async {
await workoutPlayer.stop(); await workoutPlayer.stop();
Source source = AssetSource('cool_down.mp3');
await coolDownPlayer.setReleaseMode(ReleaseMode.loop); await coolDownPlayer.setReleaseMode(ReleaseMode.loop);
await coolDownPlayer.play(UrlSource('assets/cool_down.mp3')); await coolDownPlayer.play(source);
}(); }();
} else { } else {
() async { () async {
Future.delayed(const Duration(microseconds: 900)) Future.delayed(const Duration(microseconds: 900))
.then((value) async { .then((value) async {
await AudioPlayer().play(UrlSource('assets/finish.mp3')); Source source = AssetSource('finish.mp3');
await AudioPlayer().play(source);
}); });
}(); }();
_resetTimer(); _resetTimer();