From 67b4ed65abc9af6413a9c1e291c9351afeb7dd19 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Mon, 20 Oct 2025 12:14:23 +0800 Subject: [PATCH] opt audio playlist Signed-off-by: bggRGjQaUbCoE --- lib/pages/audio/view.dart | 5 ++++- lib/pages/video/controller.dart | 25 ++++++++++++++++++++++--- lib/plugin/pl_player/view.dart | 1 - 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/lib/pages/audio/view.dart b/lib/pages/audio/view.dart index 11ac2563..9b16c048 100644 --- a/lib/pages/audio/view.dart +++ b/lib/pages/audio/view.dart @@ -817,7 +817,10 @@ class _AudioPageState extends State { ), if (audioItem.arc.hasDesc()) ...[ const SizedBox(height: 10), - SelectableText(audioItem.arc.desc), + SelectableText( + audioItem.arc.desc, + scrollPhysics: const NeverScrollableScrollPhysics(), + ), ], ], ), diff --git a/lib/pages/video/controller.dart b/lib/pages/video/controller.dart index 50ff160e..84f1456e 100644 --- a/lib/pages/video/controller.dart +++ b/lib/pages/video/controller.dart @@ -3,6 +3,8 @@ import 'dart:ui'; import 'package:PiliPlus/common/widgets/pair.dart'; import 'package:PiliPlus/common/widgets/progress_bar/segment_progress_bar.dart'; +import 'package:PiliPlus/grpc/bilibili/app/listener/v1.pbenum.dart' + show PlaylistSource; import 'package:PiliPlus/http/constants.dart'; import 'package:PiliPlus/http/fav.dart'; import 'package:PiliPlus/http/init.dart'; @@ -1749,16 +1751,33 @@ class VideoDetailController extends GetxController } void toAudioPage() { + int? id; + int? extraId; + PlaylistSource from = PlaylistSource.UP_ARCHIVE; + if (isPlayAll) { + id = args['mediaId']; + extraId = sourceType.extraId; + from = sourceType.playlistSource; + } else if (isUgc) { + try { + final ctr = Get.find(tag: heroTag); + id = ctr.videoDetail.value.ugcSeason?.id; + if (id != null) { + extraId = 8; + from = PlaylistSource.MEDIA_LIST; + } + } catch (_) {} + } AudioPage.toAudioPage( itemType: 1, - id: args['mediaId'], + id: id, oid: aid, subId: [cid.value], - from: sourceType.playlistSource, + from: from, heroTag: autoPlay.value ? heroTag : null, start: playedTime, audioUrl: audioUrl, - extraId: sourceType.extraId, + extraId: extraId, ); } } diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index f4e74d47..5d549436 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -1156,7 +1156,6 @@ class _PLVideoPlayerState extends State _removeDmAction(); } else if (item != _suspendedDm) { if (item.content.extra == null) { - assert(false, 'empty extra: $item'); _removeDmAction(); return; }