scroll to update volume

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-09-28 21:01:12 +08:00
parent 24be7a9cf2
commit 0aebadb005

View File

@@ -49,6 +49,7 @@ import 'package:dio/dio.dart';
import 'package:easy_debounce/easy_throttle.dart'; import 'package:easy_debounce/easy_throttle.dart';
import 'package:fl_chart/fl_chart.dart'; import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart'; import 'package:flutter_cache_manager/flutter_cache_manager.dart';
@@ -1095,8 +1096,10 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
aspectRatio: videoFit.aspectRatio, aspectRatio: videoFit.aspectRatio,
dmWidget: widget.danmuWidget, dmWidget: widget.danmuWidget,
transformationController: transformationController, transformationController: transformationController,
scaleEnabled: !plPlayerController.controlsLock.value, scaleEnabled:
enableShrinkVideoSize: plPlayerController.enableShrinkVideoSize, !Utils.isDesktop && !plPlayerController.controlsLock.value,
enableShrinkVideoSize:
!Utils.isDesktop && plPlayerController.enableShrinkVideoSize,
onInteractionStart: _onInteractionStart, onInteractionStart: _onInteractionStart,
onInteractionUpdate: _onInteractionUpdate, onInteractionUpdate: _onInteractionUpdate,
onInteractionEnd: _onInteractionEnd, onInteractionEnd: _onInteractionEnd,
@@ -1750,22 +1753,29 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
], ],
); );
if (!isMobile) { if (!isMobile) {
return Obx( return Listener(
onPointerSignal: (event) {
if (event is PointerScrollEvent) {
final offset = -event.scrollDelta.dy / 4000;
final volume = clampDouble(
plPlayerController.volume.value + offset,
0.0,
1.0,
);
plPlayerController.setVolume(volume);
}
},
child: Obx(
() => MouseRegion( () => MouseRegion(
cursor: !plPlayerController.showControls.value && isFullScreen cursor: !plPlayerController.showControls.value && isFullScreen
? SystemMouseCursors.none ? SystemMouseCursors.none
: MouseCursor.defer, : MouseCursor.defer,
onEnter: (event) { onEnter: (_) => plPlayerController.controls = true,
plPlayerController.controls = true; onHover: (_) => plPlayerController.controls = true,
}, onExit: (_) => plPlayerController.controls = false,
onHover: (event) {
plPlayerController.controls = true;
},
onExit: (event) {
plPlayerController.controls = false;
},
child: child, child: child,
), ),
),
); );
} }
return child; return child;