Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-03 13:30:07 +08:00
parent 84e24b5827
commit daf5d302e3
59 changed files with 315 additions and 282 deletions

View File

@@ -28,6 +28,7 @@ import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:canvas_danmaku/canvas_danmaku.dart';
import 'package:easy_debounce/easy_throttle.dart';
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';
@@ -613,8 +614,10 @@ class PlPlayerController {
await _initializePlayer();
} catch (err, stackTrace) {
dataStatus.status.value = DataStatus.error;
debugPrint(stackTrace.toString());
debugPrint('plPlayer err: $err');
if (kDebugMode) {
debugPrint(stackTrace.toString());
debugPrint('plPlayer err: $err');
}
}
}
@@ -650,7 +653,7 @@ class PlPlayerController {
await targetFile.writeAsBytes(bytes);
// copiedFilesCount++;
} catch (e) {
debugPrint('$e');
if (kDebugMode) debugPrint('$e');
}
}
return shadersDirectory;
@@ -964,11 +967,6 @@ class PlPlayerController {
videoType.value == 'live',
);
}),
// videoPlayerController!.stream.log.listen((event) {
// debugPrint('videoPlayerController!.stream.log.listen');
// debugPrint(event);
// SmartDialog.showToast('视频加载日志: $event');
// }),
videoPlayerController!.stream.error.listen((String event) {
// 直播的错误提示没有参考价值,均不予显示
if (videoType.value == 'live') return;
@@ -980,13 +978,15 @@ class PlPlayerController {
EasyThrottle.throttle('videoPlayerController!.stream.error.listen',
const Duration(milliseconds: 10000), () {
Future.delayed(const Duration(milliseconds: 3000), () async {
debugPrint("isBuffering.value: ${isBuffering.value}");
debugPrint("_buffered.value: ${_buffered.value}");
if (kDebugMode) {
debugPrint("isBuffering.value: ${isBuffering.value}");
}
if (kDebugMode) debugPrint("_buffered.value: ${_buffered.value}");
if (isBuffering.value && _buffered.value == Duration.zero) {
SmartDialog.showToast('视频链接打开失败,重试中',
displayTime: const Duration(milliseconds: 500));
if (!await refreshPlayer()) {
debugPrint("failed");
if (kDebugMode) debugPrint("failed");
}
}
});
@@ -1008,7 +1008,7 @@ class PlPlayerController {
}
}
SmartDialog.showToast('视频加载错误, $event');
debugPrint('视频加载错误, $event');
if (kDebugMode) debugPrint('视频加载错误, $event');
}
}
}),
@@ -1064,13 +1064,13 @@ class PlPlayerController {
try {
await _videoPlayerController?.seek(position);
} catch (e) {
debugPrint('seek failed: $e');
if (kDebugMode) debugPrint('seek failed: $e');
}
// if (playerStatus.stopped) {
// play();
// }
} else {
debugPrint('seek duration else');
if (kDebugMode) debugPrint('seek duration else');
_timerForSeek?.cancel();
_timerForSeek =
Timer.periodic(const Duration(milliseconds: 200), (Timer t) async {
@@ -1084,7 +1084,7 @@ class PlPlayerController {
danmakuController?.clear();
await _videoPlayerController?.seek(position);
} catch (e) {
debugPrint('seek failed: $e');
if (kDebugMode) debugPrint('seek failed: $e');
}
// if (playerStatus.status.value == PlayerStatus.paused) {
// play();
@@ -1235,7 +1235,7 @@ class PlPlayerController {
FlutterVolumeController.updateShowSystemUI(false);
await FlutterVolumeController.setVolume(volumeNew);
} catch (err) {
debugPrint(err.toString());
if (kDebugMode) debugPrint(err.toString());
}
}
@@ -1356,7 +1356,7 @@ class PlPlayerController {
enableAutoLongPressSpeed ? playbackSpeed * 2 : longPressSpeed);
}
} else {
// debugPrint('$playbackSpeed');
// if (kDebugMode) debugPrint('$playbackSpeed');
_longPressStatus.value = val;
await setPlaybackSpeed(lastPlaybackSpeed);
}
@@ -1577,7 +1577,7 @@ class PlPlayerController {
_instance = null;
videoPlayerServiceHandler.clear();
} catch (err) {
debugPrint(err.toString());
if (kDebugMode) debugPrint(err.toString());
}
}
@@ -1632,7 +1632,7 @@ class PlPlayerController {
}
} catch (e) {
videoShot = {'status': false};
debugPrint('getVideoShot: $e');
if (kDebugMode) debugPrint('getVideoShot: $e');
}
_isQueryingVideoShot = false;
}

View File

@@ -28,8 +28,10 @@ Future<void> landScape() async {
);
}
} catch (exception, stacktrace) {
debugPrint(exception.toString());
debugPrint(stacktrace.toString());
if (kDebugMode) {
debugPrint(exception.toString());
debugPrint(stacktrace.toString());
}
}
}
@@ -98,7 +100,9 @@ Future<void> showStatusBar() async {
);
}
} catch (exception, stacktrace) {
debugPrint(exception.toString());
debugPrint(stacktrace.toString());
if (kDebugMode) {
debugPrint(exception.toString());
debugPrint(stacktrace.toString());
}
}
}

View File

@@ -32,6 +32,7 @@ import 'package:PiliPlus/utils/utils.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:flutter_volume_controller/flutter_volume_controller.dart';
@@ -65,8 +66,8 @@ class PLVideoPlayer extends StatefulWidget {
final VideoDetailController? videoDetailController;
final VideoIntroController? videoIntroController;
final BangumiIntroController? bangumiIntroController;
final PreferredSizeWidget headerControl;
final PreferredSizeWidget? bottomControl;
final Widget headerControl;
final Widget? bottomControl;
final Widget? danmuWidget;
// List<Widget> or Widget
@@ -748,7 +749,9 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
interacting = true;
}
_initialFocalPoint = details.localFocalPoint;
// debugPrint("_initialFocalPoint$_initialFocalPoint");
// if (kDebugMode) {
// debugPrint("_initialFocalPoint$_initialFocalPoint");
// }
_gestureType = null;
},
onInteractionUpdate: (ScaleUpdateDetails details) {
@@ -900,13 +903,13 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
if (isFullScreen ^ fullScreenGestureReverse) {
fullScreenTrigger(fullScreenGestureReverse);
}
// debugPrint('center_down:$cumulativeDy');
// if (kDebugMode) debugPrint('center_down:$cumulativeDy');
} else if (cumulativeDy < -threshold) {
_gestureType = 'center_up';
if (!isFullScreen ^ fullScreenGestureReverse) {
fullScreenTrigger(!fullScreenGestureReverse);
}
// debugPrint('center_up:$cumulativeDy');
// if (kDebugMode) debugPrint('center_up:$cumulativeDy');
}
} else if (_gestureType == 'right') {
// 右边区域
@@ -1010,13 +1013,13 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
if (isFullScreen ^ fullScreenGestureReverse) {
fullScreenTrigger(fullScreenGestureReverse);
}
// debugPrint('center_down:$cumulativeDy');
// if (kDebugMode) debugPrint('center_down:$cumulativeDy');
} else if (cumulativeDy < -threshold) {
_gestureType = 'center_up';
if (!isFullScreen ^ fullScreenGestureReverse) {
fullScreenTrigger(!fullScreenGestureReverse);
}
// debugPrint('center_up:$cumulativeDy');
// if (kDebugMode) debugPrint('center_up:$cumulativeDy');
}
} else if (_gestureType == 'right') {
// 右边区域
@@ -1866,7 +1869,7 @@ Widget buildSeekPreviewWidget(PlPlayerController plPlayerController) {
),
);
} catch (e) {
debugPrint('seek preview: $e');
if (kDebugMode) debugPrint('seek preview: $e');
return SizedBox.shrink(
key: ValueKey(plPlayerController.previewDx.value),
);
@@ -1896,9 +1899,9 @@ Widget buildViewPointWidget(
plPlayerController.videoPlayerController
?.seek(Duration(seconds: item.from!));
}
// debugPrint('${item.title},,${item.from}');
// if (kDebugMode) debugPrint('${item.title},,${item.from}');
} catch (e) {
debugPrint('$e');
if (kDebugMode) debugPrint('$e');
}
},
),

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
class AppBarAni extends StatelessWidget implements PreferredSizeWidget {
class AppBarAni extends StatelessWidget {
const AppBarAni({
required this.child,
required this.controller,
@@ -9,14 +9,11 @@ class AppBarAni extends StatelessWidget implements PreferredSizeWidget {
super.key,
});
final PreferredSizeWidget child;
final Widget child;
final AnimationController controller;
final bool visible;
final String? position;
@override
Size get preferredSize => child.preferredSize;
@override
Widget build(BuildContext context) {
visible ? controller.forward() : controller.reverse();

View File

@@ -9,7 +9,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:get/get.dart';
class BottomControl extends StatelessWidget implements PreferredSizeWidget {
class BottomControl extends StatelessWidget {
final PlPlayerController controller;
final Function buildBottomControl;
const BottomControl({
@@ -18,9 +18,6 @@ class BottomControl extends StatelessWidget implements PreferredSizeWidget {
super.key,
});
@override
Size get preferredSize => const Size(double.infinity, kToolbarHeight);
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);