fix(audio): ne coupe plus la musique externe sur les chronos de step (ticket #92)

Le son joué aux 3 dernières secondes d'un chrono de step n'interrompt plus la musique de l'utilisateur en cours de lecture.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-22 09:07:20 +02:00
parent 3885709d5a
commit f2e8a3bbe0

View File

@ -13,6 +13,9 @@ final class AudioplayersExerciseStepAudioCuePlayer
AudioplayersExerciseStepAudioCuePlayer();
final AudioPlayer _player = AudioPlayer();
late final Future<void> _audioContextReady = _player.setAudioContext(
_stepCueAudioContext,
);
@override
Future<void> playShortCountdownBeep() {
@ -25,6 +28,7 @@ final class AudioplayersExerciseStepAudioCuePlayer
}
Future<void> _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();