fix(android): audio doesn't resume on interruption end

This commit is contained in:
Kingkor Roy Tirtho 2023-09-27 12:44:07 +06:00
parent 2eb3754953
commit 15d466a045
2 changed files with 24 additions and 13 deletions

View File

@ -569,11 +569,6 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist>
)); ));
if (res.body == "Not Found") { if (res.body == "Not Found") {
Catcher.reportCheckedError(
"[SponsorBlock] no skip segments found for $id\n"
"${res.request?.url}",
StackTrace.current,
);
return List.castFrom<dynamic, SkipSegment>([]); return List.castFrom<dynamic, SkipSegment>([]);
} }

View File

@ -18,16 +18,32 @@ class MobileAudioService extends BaseAudioHandler {
session = s; session = s;
session?.configure(const AudioSessionConfiguration.music()); session?.configure(const AudioSessionConfiguration.music());
s.interruptionEventStream.listen((event) async { s.interruptionEventStream.listen((event) async {
switch (event.type) { if (event.begin) {
case AudioInterruptionType.duck: switch (event.type) {
await audioPlayer.setVolume(event.begin ? 0.5 : 1.0); case AudioInterruptionType.duck:
break; await audioPlayer.setVolume(0.5);
case AudioInterruptionType.pause: break;
case AudioInterruptionType.unknown: case AudioInterruptionType.pause:
await audioPlayer.pause(); case AudioInterruptionType.unknown:
break; await audioPlayer.pause();
break;
}
} else {
switch (event.type) {
case AudioInterruptionType.duck:
await audioPlayer.setVolume(1.0);
break;
case AudioInterruptionType.pause:
case AudioInterruptionType.unknown:
await audioPlayer.resume();
break;
}
} }
}); });
s.becomingNoisyEventStream.listen((_) {
audioPlayer.pause();
});
}); });
audioPlayer.playerStateStream.listen((state) async { audioPlayer.playerStateStream.listen((state) async {
playbackState.add(await _transformEvent()); playbackState.add(await _transformEvent());