diff --git a/lib/presentation/exercise_step_audio.dart b/lib/presentation/exercise_step_audio.dart index c97da64..b1aacf9 100644 --- a/lib/presentation/exercise_step_audio.dart +++ b/lib/presentation/exercise_step_audio.dart @@ -13,6 +13,9 @@ final class AudioplayersExerciseStepAudioCuePlayer AudioplayersExerciseStepAudioCuePlayer(); final AudioPlayer _player = AudioPlayer(); + late final Future _audioContextReady = _player.setAudioContext( + _stepCueAudioContext, + ); @override Future playShortCountdownBeep() { @@ -25,6 +28,7 @@ final class AudioplayersExerciseStepAudioCuePlayer } Future _play(String assetPath) async { + await _audioContextReady; await _player.stop(); await _player.play(AssetSource(assetPath)); } @@ -35,6 +39,18 @@ final class AudioplayersExerciseStepAudioCuePlayer } } +final _stepCueAudioContext = AudioContext( + android: const AudioContextAndroid( + contentType: AndroidContentType.sonification, + usageType: AndroidUsageType.assistanceSonification, + audioFocus: AndroidAudioFocus.none, + ), + iOS: AudioContextIOS( + category: AVAudioSessionCategory.playback, + options: const {AVAudioSessionOptions.mixWithOthers}, + ), +); + final class NoOpExerciseStepAudioCuePlayer implements ExerciseStepAudioCuePlayer { const NoOpExerciseStepAudioCuePlayer();