I use just_audio
to play sound effects in my Flutter app targeting mainly Android.
I want to allow users to listen to music on Spotify (or similar app) while using my app.
Currently every time my app plays a sound effect the Spotify playback is paused.
Can I use audio ducking with just_audio
so that instead of pausing Spotify playback, music would just be briefly silenced?
I implemented audio_session
but it still pauses Spotify instead of ducking or mixing:
await session.configure(
AudioSessionConfiguration(
avAudioSessionCategory: AVAudioSessionCategory.ambient,
avAudioSessionCategoryOptions:
AVAudioSessionCategoryOptions.duckOthers,
avAudioSessionMode: AVAudioSessionMode.defaultMode,
androidAudioAttributes: const AndroidAudioAttributes(
contentType: AndroidAudioContentType.sonification,
usage: AndroidAudioUsage.notification,
flags: AndroidAudioFlags.none,
),
androidWillPauseWhenDucked: false, // Do not pause other apps
),
);
I managed to achieve this using below settings by setting handleAudioSessionActivation
to false for the sound (effects) player. This makes it just play sounds without affecting other apps like Spotify. For music player I use true
so that it does stop others audio apps.
final AudioPlayer soundPlayer = AudioPlayer(
handleAudioSessionActivation: false,
);
final AudioPlayer musicPlayer = AudioPlayer(
handleAudioSessionActivation: true,
);