feat: 新增播放信息查看功能

This commit is contained in:
orz12
2024-08-25 13:55:46 +08:00
parent eaf12d8e9e
commit 8dbf1baafa

View File

@@ -4,6 +4,7 @@ import 'dart:math';
import 'package:floating/floating.dart'; import 'package:floating/floating.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -282,6 +283,172 @@ class _HeaderControlState extends State<HeaderControl> {
leading: const Icon(Icons.subtitles_outlined, size: 20), leading: const Icon(Icons.subtitles_outlined, size: 20),
title: const Text('弹幕设置', style: titleStyle), title: const Text('弹幕设置', style: titleStyle),
), ),
ListTile(
title: const Text('播放信息', style: titleStyle),
leading: const Icon(Icons.info_outline, size: 20),
onTap: () {
Player? player =
widget.controller?.videoPlayerController;
if (player == null) {
SmartDialog.showToast('播放器未初始化');
return;
}
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: const Text('播放信息'),
content: SizedBox(
width: double.maxFinite,
child: ListView(
children: [
ListTile(
title: const Text("Resolution"),
subtitle: Text(
'${player.state.width}x${player.state.height}'),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
"Resolution\n${player.state.width}x${player.state.height}",
),
);
},
),
ListTile(
title: const Text("VideoParams"),
subtitle: Text(player.state.videoParams
.toString()),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
"VideoParams\n${player.state.videoParams}",
),
);
},
),
ListTile(
title: const Text("AudioParams"),
subtitle: Text(player.state.audioParams
.toString()),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
"AudioParams\n${player.state.audioParams}",
),
);
},
),
ListTile(
title: const Text("Media"),
subtitle: Text(
player.state.playlist.toString()),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
"Media\n${player.state.playlist}",
),
);
},
),
ListTile(
title: const Text("AudioTrack"),
subtitle: Text(player.state.track.audio
.toString()),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
"AudioTrack\n${player.state.track.audio}",
),
);
},
),
ListTile(
title: const Text("VideoTrack"),
subtitle: Text(player.state.track.video
.toString()),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
"VideoTrack\n${player.state.track.audio}",
),
);
},
),
ListTile(
title: const Text("pitch"),
subtitle: Text(
player.state.pitch.toString()),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
"pitch\n${player.state.pitch}",
),
);
}),
ListTile(
title: const Text("rate"),
subtitle: Text(
player.state.rate.toString()),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
"rate\n${player.state.rate}",
),
);
}),
ListTile(
title: const Text("AudioBitrate"),
subtitle: Text(player.state.audioBitrate
.toString()),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
"AudioBitrate\n${player.state.audioBitrate}",
),
);
},
),
ListTile(
title: const Text("Volume"),
subtitle: Text(
player.state.volume.toString()),
onTap: () {
Clipboard.setData(
ClipboardData(
text:
"Volume\n${player.state.volume}",
),
);
},
),
],
),
),
actions: [
TextButton(
onPressed: () => Get.back(),
child: Text(
'确定',
style: TextStyle(
color: Theme.of(context)
.colorScheme
.outline),
),
),
],
);
},
);
})
], ],
), ),
)) ))