mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-06-11 05:11:34 +08:00
custom player/max volume
Closes #2199 Closes #2358 Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
@@ -17,6 +17,8 @@ import 'package:PiliPlus/models/user/danmaku_rule.dart';
|
||||
import 'package:PiliPlus/models/video/play/url.dart';
|
||||
import 'package:PiliPlus/models_new/video/video_shot/data.dart';
|
||||
import 'package:PiliPlus/pages/danmaku/danmaku_model.dart';
|
||||
import 'package:PiliPlus/pages/setting/models/play_settings.dart'
|
||||
show kMaxVolume;
|
||||
import 'package:PiliPlus/pages/sponsor_block/block_mixin.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/models/data_source.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/models/data_status.dart';
|
||||
@@ -772,11 +774,14 @@ class PlPlayerController with BlockConfigMixin {
|
||||
'video-sync': Pref.videoSync,
|
||||
};
|
||||
if (Platform.isAndroid) {
|
||||
opt['volume-max'] = '100';
|
||||
opt['ao'] = Pref.audioOutput;
|
||||
} else if (PlatformUtils.isDesktop) {
|
||||
}
|
||||
if (PlatformUtils.isMobile) {
|
||||
opt['volume'] = Pref.playerVolume.toString();
|
||||
} else {
|
||||
opt['volume'] = (volume.value * 100).toString();
|
||||
}
|
||||
opt['volume-max'] = kMaxVolume.toString();
|
||||
final autosync = Pref.autosync;
|
||||
if (autosync != '0') {
|
||||
opt['autosync'] = autosync;
|
||||
@@ -1250,13 +1255,13 @@ class PlPlayerController with BlockConfigMixin {
|
||||
Timer? volumeTimer;
|
||||
bool volumeInterceptEventStream = false;
|
||||
|
||||
static final double maxVolume = PlatformUtils.isDesktop ? 2.0 : 1.0;
|
||||
final double maxVolume = PlatformUtils.isDesktop ? Pref.maxVolume : 1.0;
|
||||
Future<void> setVolume(double volume, {bool showIndicator = true}) async {
|
||||
if (this.volume.value != volume) {
|
||||
this.volume.value = volume;
|
||||
try {
|
||||
if (PlatformUtils.isDesktop) {
|
||||
_videoPlayerController!.setVolume(volume * 100);
|
||||
await _videoPlayerController!.setVolume(volume * 100);
|
||||
} else {
|
||||
FlutterVolumeController.updateShowSystemUI(false);
|
||||
await FlutterVolumeController.setVolume(volume);
|
||||
|
||||
@@ -1132,7 +1132,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
||||
final double volume = clampDouble(
|
||||
plPlayerController.volume.value - delta.dy / level,
|
||||
0.0,
|
||||
PlPlayerController.maxVolume,
|
||||
plPlayerController.maxVolume,
|
||||
);
|
||||
plPlayerController.setVolume(volume);
|
||||
},
|
||||
@@ -1350,7 +1350,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
||||
final double volume = clampDouble(
|
||||
plPlayerController.volume.value - event.localPanDelta.dy / level,
|
||||
0.0,
|
||||
PlPlayerController.maxVolume,
|
||||
plPlayerController.maxVolume,
|
||||
);
|
||||
plPlayerController.setVolume(volume);
|
||||
},
|
||||
@@ -1374,7 +1374,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
||||
final volume = clampDouble(
|
||||
plPlayerController.volume.value + offset,
|
||||
0.0,
|
||||
PlPlayerController.maxVolume,
|
||||
plPlayerController.maxVolume,
|
||||
);
|
||||
plPlayerController.setVolume(volume);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user