mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-07-04 16:20:14 +08:00
custom player/max volume
Closes #2199 Closes #2358 Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
@@ -19,6 +19,8 @@ import 'package:PiliPlus/pages/common/common_intro_controller.dart'
|
||||
show FavMixin;
|
||||
import 'package:PiliPlus/pages/dynamics_repost/view.dart';
|
||||
import 'package:PiliPlus/pages/main_reply/view.dart';
|
||||
import 'package:PiliPlus/pages/setting/models/play_settings.dart'
|
||||
show kMaxVolume;
|
||||
import 'package:PiliPlus/pages/sponsor_block/block_mixin.dart';
|
||||
import 'package:PiliPlus/pages/video/controller.dart';
|
||||
import 'package:PiliPlus/pages/video/introduction/ugc/widgets/triple_mixin.dart';
|
||||
@@ -328,11 +330,14 @@ class AudioController extends GetxController
|
||||
_hasInit = true;
|
||||
assert(player == null, _subscriptions = null);
|
||||
player = await Player.create(
|
||||
configuration: PlatformUtils.isDesktop
|
||||
? PlayerConfiguration(
|
||||
options: {'volume': (desktopVolume.value * 100).toString()},
|
||||
)
|
||||
: const PlayerConfiguration(),
|
||||
configuration: PlayerConfiguration(
|
||||
options: {
|
||||
'volume': PlatformUtils.isDesktop
|
||||
? (desktopVolume.value * 100).toString()
|
||||
: Pref.playerVolume.toString(),
|
||||
'volume-max': kMaxVolume.toString(),
|
||||
},
|
||||
),
|
||||
);
|
||||
if (isClosed) {
|
||||
player!.dispose();
|
||||
|
||||
@@ -14,7 +14,11 @@ import 'package:PiliPlus/models/common/image_preview_type.dart';
|
||||
import 'package:PiliPlus/models/common/image_type.dart';
|
||||
import 'package:PiliPlus/pages/audio/controller.dart';
|
||||
import 'package:PiliPlus/pages/audio/volume_button.dart';
|
||||
import 'package:PiliPlus/pages/setting/models/play_settings.dart'
|
||||
show showPlayerVolumeDialog;
|
||||
import 'package:PiliPlus/pages/video/introduction/ugc/widgets/action_item.dart';
|
||||
import 'package:PiliPlus/pages/video/widgets/header_control.dart'
|
||||
show HeaderControlState;
|
||||
import 'package:PiliPlus/plugin/pl_player/models/play_repeat.dart';
|
||||
import 'package:PiliPlus/services/shutdown_timer_service.dart';
|
||||
import 'package:PiliPlus/utils/date_utils.dart';
|
||||
@@ -615,28 +619,43 @@ class _AudioPageState extends State<AudioPage> {
|
||||
),
|
||||
),
|
||||
),
|
||||
// ListTile(
|
||||
// dense: true,
|
||||
// title: const Text(
|
||||
// '定时关闭',
|
||||
// style: TextStyle(fontSize: 14),
|
||||
// ),
|
||||
// onTap: () {
|
||||
// Get.back();
|
||||
// _controller.showTimerDialog();
|
||||
// },
|
||||
// ),
|
||||
ListTile(
|
||||
dense: true,
|
||||
title: const Text(
|
||||
'举报',
|
||||
style: TextStyle(fontSize: 14),
|
||||
),
|
||||
leading: const Icon(Icons.warning_amber_rounded, size: 20),
|
||||
title: const Text('举报', style: TextStyle(fontSize: 14)),
|
||||
onTap: () {
|
||||
Get.back();
|
||||
PageUtils.reportVideo(_controller.oid.toInt());
|
||||
},
|
||||
),
|
||||
if (_controller.player case final player?) ...[
|
||||
ListTile(
|
||||
dense: true,
|
||||
leading: const Icon(Icons.info_outline, size: 20),
|
||||
title: const Text('播放信息', style: TextStyle(fontSize: 14)),
|
||||
onTap: () {
|
||||
Get.back();
|
||||
HeaderControlState.showPlayerInfo(context, player: player);
|
||||
},
|
||||
),
|
||||
if (PlatformUtils.isMobile)
|
||||
ListTile(
|
||||
dense: true,
|
||||
leading: const Icon(Icons.volume_up, size: 20),
|
||||
title: Text(
|
||||
'播放器音量: ${player.getProperty('volume').subLength(3)}%',
|
||||
style: const TextStyle(fontSize: 14),
|
||||
),
|
||||
onTap: () {
|
||||
Get.back();
|
||||
showPlayerVolumeDialog(
|
||||
context,
|
||||
() {},
|
||||
onChanged: player.setVolume,
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'dart:math' as math;
|
||||
|
||||
import 'package:PiliPlus/common/widgets/flutter/vertical_slider.dart';
|
||||
import 'package:PiliPlus/pages/audio/controller.dart';
|
||||
import 'package:PiliPlus/utils/storage_pref.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart' show RenderProxyBox, BoxHitTestResult;
|
||||
import 'package:get/get.dart';
|
||||
@@ -140,7 +141,7 @@ class _VolumeButtonState extends State<VolumeButton> {
|
||||
child: VerticalSlider(
|
||||
year2023: true,
|
||||
min: 0.0,
|
||||
max: 2.0,
|
||||
max: Pref.maxVolume,
|
||||
value: volume,
|
||||
showValueIndicator: .never,
|
||||
onChanged: widget.controller.setVolume,
|
||||
|
||||
Reference in New Issue
Block a user