opt: 封面点击播放+弹幕发送标识
This commit is contained in:
@ -306,9 +306,9 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
Obx(() => SliverAppBar(
|
||||
automaticallyImplyLeading: false,
|
||||
// 假装使用一个非空变量,避免Obx检测不到而罢工
|
||||
pinned: videoDetailController
|
||||
.autoPlay.value ^ false ^ videoDetailController
|
||||
.autoPlay.value,
|
||||
pinned: videoDetailController.autoPlay.value ^
|
||||
false ^
|
||||
videoDetailController.autoPlay.value,
|
||||
elevation: 0,
|
||||
scrolledUnderElevation: 0,
|
||||
forceElevated: innerBoxIsScrolled,
|
||||
@ -389,6 +389,10 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
handlePlay();
|
||||
},
|
||||
child: NetworkImgLayer(
|
||||
type: 'emote',
|
||||
src: videoDetailController
|
||||
@ -399,6 +403,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
/// 关闭自动播放时 手动播放
|
||||
Obx(
|
||||
@ -444,13 +449,24 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
bottom: 10,
|
||||
child: TextButton.icon(
|
||||
style: ButtonStyle(
|
||||
side: MaterialStateProperty
|
||||
.resolveWith(
|
||||
(states) {
|
||||
return BorderSide(
|
||||
color: Theme.of(context)
|
||||
.colorScheme
|
||||
.primary
|
||||
.withOpacity(0.5),
|
||||
width: 1);
|
||||
}),
|
||||
backgroundColor:
|
||||
MaterialStateProperty
|
||||
.resolveWith(
|
||||
(states) {
|
||||
return Theme.of(context)
|
||||
.colorScheme
|
||||
.primaryContainer;
|
||||
.background
|
||||
.withOpacity(0.6);
|
||||
}),
|
||||
),
|
||||
onPressed: () => handlePlay(),
|
||||
@ -458,7 +474,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
||||
Icons.play_circle_outline,
|
||||
size: 20,
|
||||
),
|
||||
label: const Text('Play'),
|
||||
label: const Text('轻触封面播放'),
|
||||
),
|
||||
),
|
||||
],
|
||||
|
@ -239,7 +239,7 @@ class _HeaderControlState extends State<HeaderControl> {
|
||||
// TODO: 暂停状态下预览弹幕仍会移动与计时,可考虑添加到dmSegList或其他方式实现
|
||||
widget.controller!.danmakuController!.addItems([
|
||||
DanmakuItem(
|
||||
msg,
|
||||
"☞$msg",
|
||||
color: Colors.white,
|
||||
time: widget
|
||||
.controller!.position.value.inMilliseconds,
|
||||
@ -780,14 +780,16 @@ class _HeaderControlState extends State<HeaderControl> {
|
||||
label: danmakuDurationVal.toString(),
|
||||
onChanged: (double val) {
|
||||
danmakuDurationVal = val;
|
||||
widget.controller!.danmakuDurationVal = danmakuDurationVal;
|
||||
widget.controller!.danmakuDurationVal =
|
||||
danmakuDurationVal;
|
||||
setState(() {});
|
||||
try {
|
||||
DanmakuOption currentOption =
|
||||
danmakuController.option;
|
||||
DanmakuOption updatedOption =
|
||||
currentOption.copyWith(duration:
|
||||
val/widget.controller!.playbackSpeed);
|
||||
currentOption.copyWith(
|
||||
duration:
|
||||
val / widget.controller!.playbackSpeed);
|
||||
danmakuController.updateOption(updatedOption);
|
||||
} catch (_) {}
|
||||
},
|
||||
@ -882,10 +884,13 @@ class _HeaderControlState extends State<HeaderControl> {
|
||||
color: Colors.white,
|
||||
),
|
||||
fuc: () => {
|
||||
if (widget.controller!.isFullScreen.value){
|
||||
widget.controller!.triggerFullScreen(status: false)
|
||||
} else {
|
||||
if (MediaQuery.of(context).orientation == Orientation.landscape){
|
||||
if (widget.controller!.isFullScreen.value)
|
||||
{widget.controller!.triggerFullScreen(status: false)}
|
||||
else
|
||||
{
|
||||
if (MediaQuery.of(context).orientation ==
|
||||
Orientation.landscape)
|
||||
{
|
||||
SystemChrome.setPreferredOrientations([
|
||||
DeviceOrientation.portraitUp,
|
||||
])
|
||||
|
Reference in New Issue
Block a user