refa player (#1848)

* tweak

* Reapply "opt: audio uri" (#1833)

This reverts commit 8e726f49b2.

* opt: player

* opt: player

* refa: create player

* refa: player

* opt: UaType

* fix: sb seek preview

* opt: setSub

* fix: screenshot

* opt: unnecessary final player state

* opt: player track

* opt FileSource constructor [skip ci]

* fixes

* fix: dispose player

* fix: quote

* update

* fix: multi ua & remove unused loop

* remove unneeded check [skip ci]

---------

Co-authored-by: dom <githubaccount56556@proton.me>
This commit is contained in:
My-Responsitories
2026-02-27 15:51:55 +08:00
committed by GitHub
parent 6782bee11a
commit 7276cde48a
39 changed files with 1063 additions and 1112 deletions

View File

@@ -33,6 +33,7 @@ import 'package:PiliPlus/pages/video/introduction/ugc/widgets/action_item.dart';
import 'package:PiliPlus/pages/video/introduction/ugc/widgets/menu_row.dart';
import 'package:PiliPlus/pages/video/widgets/header_mixin.dart';
import 'package:PiliPlus/plugin/pl_player/controller.dart';
import 'package:PiliPlus/plugin/pl_player/models/data_source.dart';
import 'package:PiliPlus/plugin/pl_player/models/play_repeat.dart';
import 'package:PiliPlus/plugin/pl_player/utils/fullscreen.dart';
import 'package:PiliPlus/services/service_locator.dart';
@@ -542,7 +543,9 @@ class HeaderControlState extends State<HeaderControl>
);
},
),
if ((isFileSource && plPlayerController.mediaType != 1) ||
if ((isFileSource &&
!(plPlayerController.dataSource as FileSource)
.isMp4) ||
(!isFileSource &&
videoDetailCtr.audioUrl?.isNotEmpty == true))
Obx(
@@ -751,19 +754,16 @@ class HeaderControlState extends State<HeaderControl>
);
}
static Future<void> showPlayerInfo(
static void showPlayerInfo(
BuildContext context, {
required PlPlayerController plPlayerController,
}) async {
}) {
final player = plPlayerController.videoPlayerController;
if (player == null) {
SmartDialog.showToast('播放器未初始化');
return;
}
final hwdec = await player.platform!.getProperty(
'hwdec-current',
);
if (!context.mounted) return;
final hwdec = player.getProperty('hwdec-current');
showDialog(
context: context,
builder: (context) {
@@ -855,16 +855,6 @@ class HeaderControlState extends State<HeaderControl>
subtitle: Text(state.rate.toString()),
onTap: () => Utils.copyText('rate\n${state.rate}'),
),
ListTile(
dense: true,
title: const Text("AudioBitrate"),
subtitle: Text(
state.audioBitrate.toString(),
),
onTap: () => Utils.copyText(
'AudioBitrate\n${state.audioBitrate}',
),
),
ListTile(
dense: true,
title: const Text("Volume"),