Merge pull request #514 from orz12/fix-audio-fucus-interrupt
fix: 修复焦点恢复时错误播放的问题
This commit is contained in:
@ -20,11 +20,15 @@ class AudioSessionHandler {
|
|||||||
session.interruptionEventStream.listen((event) {
|
session.interruptionEventStream.listen((event) {
|
||||||
final player = PlPlayerController.getInstance();
|
final player = PlPlayerController.getInstance();
|
||||||
if (event.begin) {
|
if (event.begin) {
|
||||||
|
if (player.playerStatus != PlayerStatus.playing) return;
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case AudioInterruptionType.duck:
|
case AudioInterruptionType.duck:
|
||||||
player.setVolume(player.volume.value * 0.5);
|
player.setVolume(player.volume.value * 0.5);
|
||||||
break;
|
break;
|
||||||
case AudioInterruptionType.pause:
|
case AudioInterruptionType.pause:
|
||||||
|
player.pause(isInterrupt: true);
|
||||||
|
_playInterrupted = true;
|
||||||
|
break;
|
||||||
case AudioInterruptionType.unknown:
|
case AudioInterruptionType.unknown:
|
||||||
player.pause(isInterrupt: true);
|
player.pause(isInterrupt: true);
|
||||||
_playInterrupted = true;
|
_playInterrupted = true;
|
||||||
@ -36,7 +40,7 @@ class AudioSessionHandler {
|
|||||||
player.setVolume(player.volume.value * 2);
|
player.setVolume(player.volume.value * 2);
|
||||||
break;
|
break;
|
||||||
case AudioInterruptionType.pause:
|
case AudioInterruptionType.pause:
|
||||||
if (_playInterrupted) PlPlayerController.getInstance().play();
|
if (_playInterrupted) player.play();
|
||||||
break;
|
break;
|
||||||
case AudioInterruptionType.unknown:
|
case AudioInterruptionType.unknown:
|
||||||
break;
|
break;
|
||||||
@ -47,7 +51,10 @@ class AudioSessionHandler {
|
|||||||
|
|
||||||
// 耳机拔出暂停
|
// 耳机拔出暂停
|
||||||
session.becomingNoisyEventStream.listen((_) {
|
session.becomingNoisyEventStream.listen((_) {
|
||||||
PlPlayerController.getInstance().pause();
|
final player = PlPlayerController.getInstance();
|
||||||
|
if (player.playerStatus == PlayerStatus.playing) {
|
||||||
|
player.pause();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user