mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
fix: 多层播放页快速返回首页致后台播放、通知未消失
This commit is contained in:
@@ -18,29 +18,38 @@ class AudioSessionHandler {
|
||||
session.configure(const AudioSessionConfiguration.music());
|
||||
|
||||
session.interruptionEventStream.listen((event) {
|
||||
final player = PlPlayerController.getInstance();
|
||||
final playerStatus = PlPlayerController.getPlayerStatusIfExists();
|
||||
// final player = PlPlayerController.getInstance();
|
||||
if (event.begin) {
|
||||
if (!player.playerStatus.playing) return;
|
||||
if (playerStatus != PlayerStatus.playing) return;
|
||||
// if (!player.playerStatus.playing) return;
|
||||
switch (event.type) {
|
||||
case AudioInterruptionType.duck:
|
||||
player.setVolume(player.volume.value * 0.5);
|
||||
PlPlayerController.setVolumeIfExists(
|
||||
(PlPlayerController.getVolumeIfExists() ?? 0) * 0.5);
|
||||
// player.setVolume(player.volume.value * 0.5);
|
||||
break;
|
||||
case AudioInterruptionType.pause:
|
||||
player.pause(isInterrupt: true);
|
||||
PlPlayerController.pauseIfExists(isInterrupt: true);
|
||||
// player.pause(isInterrupt: true);
|
||||
_playInterrupted = true;
|
||||
break;
|
||||
case AudioInterruptionType.unknown:
|
||||
player.pause(isInterrupt: true);
|
||||
PlPlayerController.pauseIfExists(isInterrupt: true);
|
||||
// player.pause(isInterrupt: true);
|
||||
_playInterrupted = true;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (event.type) {
|
||||
case AudioInterruptionType.duck:
|
||||
player.setVolume(player.volume.value * 2);
|
||||
PlPlayerController.setVolumeIfExists(
|
||||
(PlPlayerController.getVolumeIfExists() ?? 0) * 2);
|
||||
// player.setVolume(player.volume.value * 2);
|
||||
break;
|
||||
case AudioInterruptionType.pause:
|
||||
if (_playInterrupted) player.play();
|
||||
if (_playInterrupted) PlPlayerController.playIfExists();
|
||||
//player.play();
|
||||
break;
|
||||
case AudioInterruptionType.unknown:
|
||||
break;
|
||||
@@ -51,10 +60,11 @@ class AudioSessionHandler {
|
||||
|
||||
// 耳机拔出暂停
|
||||
session.becomingNoisyEventStream.listen((_) {
|
||||
final player = PlPlayerController.getInstance();
|
||||
if (player.playerStatus.playing) {
|
||||
player.pause();
|
||||
}
|
||||
PlPlayerController.pauseIfExists();
|
||||
// final player = PlPlayerController.getInstance();
|
||||
// if (player.playerStatus.playing) {
|
||||
// player.pause();
|
||||
// }
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user