diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index 851bc5874..7d3d9fae9 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -507,8 +507,11 @@ class PlPlayerController with BlockConfigMixin { return _instance?.volume.value; } - static Future? setVolumeIfExists(double volumeNew) { - return _instance?.setVolume(volumeNew); + static Future? setVolumeIfExists( + double volumeNew, { + bool showIndicator = true, + }) { + return _instance?.setVolume(volumeNew, showIndicator: showIndicator); } Box video = GStorage.video; @@ -1255,7 +1258,7 @@ class PlPlayerController with BlockConfigMixin { bool volumeInterceptEventStream = false; static final double maxVolume = PlatformUtils.isDesktop ? 2.0 : 1.0; - Future setVolume(double volume) async { + Future setVolume(double volume, {bool showIndicator = true}) async { if (this.volume.value != volume) { this.volume.value = volume; try { @@ -1269,7 +1272,9 @@ class PlPlayerController with BlockConfigMixin { if (kDebugMode) debugPrint(err.toString()); } } - volumeIndicator.value = true; + if (showIndicator) { + volumeIndicator.value = true; + } volumeInterceptEventStream = true; volumeTimer?.cancel(); volumeTimer = Timer(const Duration(milliseconds: 200), () { diff --git a/lib/services/audio_session.dart b/lib/services/audio_session.dart index b1a238c9e..3155b35c8 100644 --- a/lib/services/audio_session.dart +++ b/lib/services/audio_session.dart @@ -28,6 +28,7 @@ class AudioSessionHandler { case AudioInterruptionType.duck: PlPlayerController.setVolumeIfExists( (PlPlayerController.getVolumeIfExists() ?? 0) * 0.5, + showIndicator: false, ); // player.setVolume(player.volume.value * 0.5); break; @@ -47,6 +48,7 @@ class AudioSessionHandler { case AudioInterruptionType.duck: PlPlayerController.setVolumeIfExists( (PlPlayerController.getVolumeIfExists() ?? 0) * 2, + showIndicator: false, ); // player.setVolume(player.volume.value * 2); break;