diff --git a/lib/common/widgets/video_card/video_card_h.dart b/lib/common/widgets/video_card/video_card_h.dart index 087a1e644..7512db3ec 100644 --- a/lib/common/widgets/video_card/video_card_h.dart +++ b/lib/common/widgets/video_card/video_card_h.dart @@ -14,6 +14,7 @@ import 'package:PiliPlus/models/search/result.dart'; import 'package:PiliPlus/utils/date_utils.dart'; import 'package:PiliPlus/utils/duration_utils.dart'; import 'package:PiliPlus/utils/page_utils.dart'; +import 'package:PiliPlus/utils/utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; @@ -23,13 +24,11 @@ class VideoCardH extends StatelessWidget { super.key, required this.videoItem, this.onTap, - this.onLongPress, this.onViewLater, this.onRemove, }); final BaseVideoItemModel videoItem; final VoidCallback? onTap; - final VoidCallback? onLongPress; final ValueChanged? onViewLater; final VoidCallback? onRemove; @@ -59,19 +58,19 @@ class VideoCardH extends StatelessWidget { badge = item.pgcLabel; } } + void onLongPress() => imageSaveDialog( + bvid: videoItem.bvid, + title: videoItem.title, + cover: videoItem.cover, + ); return Material( type: MaterialType.transparency, child: Stack( clipBehavior: Clip.none, children: [ InkWell( - onLongPress: - onLongPress ?? - () => imageSaveDialog( - bvid: videoItem.bvid, - title: videoItem.title, - cover: videoItem.cover, - ), + onLongPress: onLongPress, + onSecondaryTap: Utils.isMobile ? null : onLongPress, onTap: onTap ?? () async { diff --git a/lib/pages/main/view.dart b/lib/pages/main/view.dart index fd3b45638..146672f0e 100644 --- a/lib/pages/main/view.dart +++ b/lib/pages/main/view.dart @@ -142,6 +142,7 @@ class _MainAppState extends State Future _onClose() async { await GStorage.compact(); await GStorage.close(); + await trayManager.destroy(); if (Platform.isWindows) { const MethodChannel('window_control').invokeMethod('closeWindow'); } else { diff --git a/lib/pages/video/view.dart b/lib/pages/video/view.dart index b3b7d0bea..38c37fd5b 100644 --- a/lib/pages/video/view.dart +++ b/lib/pages/video/view.dart @@ -458,12 +458,9 @@ class _VideoDetailPageVState extends State await videoDetailController.playerInit(); } - Future.delayed( - const Duration(milliseconds: 600), - AutoOrientation.fullAutoMode, - ); - plPlayerController?.addStatusLister(playerListener); - plPlayerController?.addPositionListener(positionListener); + plPlayerController + ?..addStatusLister(playerListener) + ..addPositionListener(positionListener); } @override diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index d06c2a584..eaa21328d 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -1244,12 +1244,11 @@ class PlPlayerController { await seekTo(Duration.zero, isSeek: false); } + await audioSessionHandler?.setActive(true); await _videoPlayerController?.play(); playerStatus.status.value = PlayerStatus.playing; // screenManager.setOverlays(false); - - audioSessionHandler?.setActive(true); } /// 暂停播放 diff --git a/lib/services/audio_session.dart b/lib/services/audio_session.dart index 6952d94fe..b1a238c9e 100644 --- a/lib/services/audio_session.dart +++ b/lib/services/audio_session.dart @@ -6,8 +6,8 @@ class AudioSessionHandler { late AudioSession session; bool _playInterrupted = false; - void setActive(bool active) { - session.setActive(active); + Future setActive(bool active) { + return session.setActive(active); } AudioSessionHandler() {