fix ios volume

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-09-05 11:30:47 +08:00
parent 6e6ff369d3
commit 224bd88473
7 changed files with 33 additions and 29 deletions

View File

@@ -44,6 +44,7 @@ import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:flutter_volume_controller/flutter_volume_controller.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:media_kit/media_kit.dart';
@@ -52,7 +53,6 @@ import 'package:path/path.dart' as path;
import 'package:path_provider/path_provider.dart';
import 'package:screen_brightness/screen_brightness.dart';
import 'package:universal_platform/universal_platform.dart';
import 'package:volume_controller/volume_controller.dart';
class PlPlayerController {
Player? _videoPlayerController;
@@ -1212,7 +1212,7 @@ class PlPlayerController {
Future<void> getCurrentVolume() async {
// mac try...catch
try {
_currentVolume.value = await VolumeController.instance.getVolume();
_currentVolume.value = (await FlutterVolumeController.getVolume())!;
} catch (_) {}
}
@@ -1231,9 +1231,8 @@ class PlPlayerController {
volume.value = volumeNew;
try {
await (VolumeController.instance..showSystemUI = false).setVolume(
volumeNew,
);
FlutterVolumeController.updateShowSystemUI(false);
await FlutterVolumeController.setVolume(volumeNew);
} catch (err) {
if (kDebugMode) debugPrint(err.toString());
}

View File

@@ -54,6 +54,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:flutter_volume_controller/flutter_volume_controller.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get.dart' hide ContextExtensionss;
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
@@ -61,7 +62,6 @@ import 'package:media_kit/media_kit.dart';
import 'package:media_kit_video/media_kit_video.dart';
import 'package:saver_gallery/saver_gallery.dart';
import 'package:screen_brightness/screen_brightness.dart';
import 'package:volume_controller/volume_controller.dart';
class PLVideoPlayer extends StatefulWidget {
const PLVideoPlayer({
@@ -203,12 +203,12 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
videoController = plPlayerController.videoController!;
Future.microtask(() async {
try {
final volumeCtr = VolumeController.instance..showSystemUI = true;
_volumeValue.value = await volumeCtr.getVolume();
volumeCtr.addListener((double value) {
FlutterVolumeController.updateShowSystemUI(true);
_volumeValue.value = (await FlutterVolumeController.getVolume())!;
FlutterVolumeController.addListener((double value) {
if (mounted && !_volumeInterceptEventStream.value) {
_volumeValue.value = value;
if (Platform.isIOS && !volumeCtr.showSystemUI) {
if (Platform.isIOS && !FlutterVolumeController.showSystemUI) {
_volumeIndicator.value = true;
_volumeTimer?.cancel();
_volumeTimer = Timer(const Duration(milliseconds: 800), () {
@@ -239,7 +239,8 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
Future<void> setVolume(double value) async {
try {
await (VolumeController.instance..showSystemUI = false).setVolume(value);
FlutterVolumeController.updateShowSystemUI(false);
await FlutterVolumeController.setVolume(value);
} catch (_) {}
_volumeValue.value = value;
@@ -273,7 +274,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
_listener?.cancel();
_controlsListener?.cancel();
animationController.dispose();
VolumeController.instance.removeListener();
FlutterVolumeController.removeListener();
transformationController.dispose();
super.dispose();
}