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:
@ -13,6 +13,9 @@ final class AudioplayersExerciseStepAudioCuePlayer
|
|||||||
AudioplayersExerciseStepAudioCuePlayer();
|
AudioplayersExerciseStepAudioCuePlayer();
|
||||||
|
|
||||||
final AudioPlayer _player = AudioPlayer();
|
final AudioPlayer _player = AudioPlayer();
|
||||||
|
late final Future<void> _audioContextReady = _player.setAudioContext(
|
||||||
|
_stepCueAudioContext,
|
||||||
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> playShortCountdownBeep() {
|
Future<void> playShortCountdownBeep() {
|
||||||
@ -25,6 +28,7 @@ final class AudioplayersExerciseStepAudioCuePlayer
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _play(String assetPath) async {
|
Future<void> _play(String assetPath) async {
|
||||||
|
await _audioContextReady;
|
||||||
await _player.stop();
|
await _player.stop();
|
||||||
await _player.play(AssetSource(assetPath));
|
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
|
final class NoOpExerciseStepAudioCuePlayer
|
||||||
implements ExerciseStepAudioCuePlayer {
|
implements ExerciseStepAudioCuePlayer {
|
||||||
const NoOpExerciseStepAudioCuePlayer();
|
const NoOpExerciseStepAudioCuePlayer();
|
||||||
|
|||||||
Reference in New Issue
Block a user