fix: audio resumes after a phone call even if it was paused before #926

This commit is contained in:
Kingkor Roy Tirtho 2024-01-24 10:46:42 +06:00
parent 9bd16e096f
commit fd1899f162
2 changed files with 14 additions and 5 deletions

View File

@ -32,7 +32,7 @@ if (keystorePropertiesFile.exists()) {
}
android {
compileSdkVersion 33
compileSdkVersion 34
ndkVersion "21.4.7075529"

View File

@ -17,6 +17,9 @@ class MobileAudioService extends BaseAudioHandler {
AudioSession.instance.then((s) {
session = s;
session?.configure(const AudioSessionConfiguration.music());
bool wasPausedByBeginEvent = false;
s.interruptionEventStream.listen((event) async {
if (event.begin) {
switch (event.type) {
@ -25,17 +28,23 @@ class MobileAudioService extends BaseAudioHandler {
break;
case AudioInterruptionType.pause:
case AudioInterruptionType.unknown:
{
wasPausedByBeginEvent = audioPlayer.isPlaying;
await audioPlayer.pause();
break;
}
}
} else {
switch (event.type) {
case AudioInterruptionType.duck:
await audioPlayer.setVolume(1.0);
break;
case AudioInterruptionType.pause:
case AudioInterruptionType.unknown:
case AudioInterruptionType.pause when wasPausedByBeginEvent:
case AudioInterruptionType.unknown when wasPausedByBeginEvent:
await audioPlayer.resume();
wasPausedByBeginEvent = false;
break;
default:
break;
}
}