feat: 播放器亮度记忆

This commit is contained in:
guozhigq
2023-08-25 23:51:40 +08:00
parent 6083578f93
commit 8bc6a32b06
6 changed files with 39 additions and 18 deletions

View File

@ -72,6 +72,12 @@ class _PlaySettingState extends State<PlaySetting> {
setKey: SettingBoxKey.enableOnlineTotal,
defaultVal: false,
),
const SetSwitchItem(
title: '亮度记忆',
subTitle: '返回时自动调整视频亮度',
setKey: SettingBoxKey.enableAutoBrightness,
defaultVal: false,
),
ListTile(
dense: false,
title: Text('默认画质', style: titleStyle),

View File

@ -14,6 +14,7 @@ import 'package:pilipala/pages/video/detail/replyReply/index.dart';
import 'package:pilipala/plugin/pl_player/index.dart';
import 'package:pilipala/utils/storage.dart';
import 'package:pilipala/utils/utils.dart';
import 'package:screen_brightness/screen_brightness.dart';
class VideoDetailController extends GetxController
with GetSingleTickerProviderStateMixin {
@ -68,6 +69,8 @@ class VideoDetailController extends GetxController
late String videoUrl;
late String audioUrl;
late Duration defaultST;
// 亮度
double? brightness;
// 默认记录历史记录
bool enableHeart = true;
var userInfo;
@ -152,6 +155,12 @@ class VideoDetailController extends GetxController
}
Future playerInit({video, audio, seekToTime, duration}) async {
/// 设置/恢复 屏幕亮度
if (brightness != null) {
ScreenBrightness().setScreenBrightness(brightness!);
} else {
ScreenBrightness().resetScreenBrightness();
}
await plPlayerController.setDataSource(
DataSource(
videoSource: video ?? videoUrl,

View File

@ -45,6 +45,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
double doubleOffset = 0;
Box localCache = GStrorage.localCache;
Box setting = GStrorage.setting;
late double statusBarHeight;
final videoHeight = Get.size.width * 9 / 16;
late Future _futureBuilderFuture;
@ -104,6 +105,10 @@ class _VideoDetailPageState extends State<VideoDetailPage>
@override
// 离开当前页面时
void didPushNext() async {
/// 开启
if (setting.get(SettingBoxKey.enableAutoBrightness, defaultValue: false)) {
videoDetailController.brightness = plPlayerController!.brightness.value;
}
videoDetailController.defaultST = plPlayerController!.position.value;
videoIntroController.isPaused = true;
plPlayerController!.pause();

View File

@ -619,7 +619,7 @@ class PlPlayerController {
try {
brightness.value = brightnes;
ScreenBrightness().setScreenBrightness(brightnes);
setVideoBrightness();
// setVideoBrightness();
} catch (e) {
throw 'Failed to set brightness';
}
@ -662,27 +662,24 @@ class PlPlayerController {
}
/// 缓存fit
Future<void> setVideoFit() async {
videoStorage.put(VideoBoxKey.videoBrightness, _videoFit.value.name);
}
// Future<void> setVideoFit() async {
// videoStorage.put(VideoBoxKey.videoBrightness, _videoFit.value.name);
// }
/// 读取fit
Future<void> getVideoFit() async {
String fitValue =
videoStorage.get(VideoBoxKey.videoBrightness, defaultValue: 'contain');
_videoFit.value = videoFitType
.firstWhere((element) => element['attr'] == fitValue)['attr'];
}
/// 缓存亮度
Future<void> setVideoBrightness() async {}
// Future<void> getVideoFit() async {
// String fitValue =
// videoStorage.get(VideoBoxKey.videoBrightness, defaultValue: 'contain');
// _videoFit.value = videoFitType
// .firstWhere((element) => element['attr'] == fitValue)['attr'];
// }
/// 读取亮度
Future<void> getVideoBrightness() async {
double brightnessValue =
videoStorage.get(VideoBoxKey.videoBrightness, defaultValue: 0.5);
setBrightness(brightnessValue);
}
// Future<void> getVideoBrightness() async {
// double brightnessValue =
// videoStorage.get(VideoBoxKey.videoBrightness, defaultValue: 0.5);
// setBrightness(brightnessValue);
// }
set controls(bool visible) {
_showControls.value = visible;
@ -791,6 +788,8 @@ class PlPlayerController {
await _videoPlayerController?.dispose();
_videoPlayerController = null;
_instance = null;
// 关闭所有视频页面恢复亮度
resetBrightness();
} catch (err) {
print(err);
}

View File

@ -156,6 +156,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
});
}
});
widget.controller.brightness.value = value;
}
Future<void> triggerFullScreen() async {

View File

@ -96,6 +96,7 @@ class SettingBoxKey {
static const String defaultPicQa = 'defaultPicQa';
static const String enableHA = 'enableHA';
static const String enableOnlineTotal = 'enableOnlineTotal';
static const String enableAutoBrightness = 'enableAutoBrightness';
/// 隐私
static const String blackMidsList = 'blackMidsList';