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,21 +1753,28 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
], ],
); );
if (!isMobile) { if (!isMobile) {
return Obx( return Listener(
() => MouseRegion( onPointerSignal: (event) {
cursor: !plPlayerController.showControls.value && isFullScreen if (event is PointerScrollEvent) {
? SystemMouseCursors.none final offset = -event.scrollDelta.dy / 4000;
: MouseCursor.defer, final volume = clampDouble(
onEnter: (event) { plPlayerController.volume.value + offset,
plPlayerController.controls = true; 0.0,
}, 1.0,
onHover: (event) { );
plPlayerController.controls = true; plPlayerController.setVolume(volume);
}, }
onExit: (event) { },
plPlayerController.controls = false; child: Obx(
}, () => MouseRegion(
child: child, cursor: !plPlayerController.showControls.value && isFullScreen
? SystemMouseCursors.none
: MouseCursor.defer,
onEnter: (_) => plPlayerController.controls = true,
onHover: (_) => plPlayerController.controls = true,
onExit: (_) => plPlayerController.controls = false,
child: child,
),
), ),
); );
} }