adjust quality monitor ui
Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
parent
00a3b04aab
commit
61389bc11f
@ -1,3 +1,4 @@
|
|||||||
|
import 'package:auto_size_text/auto_size_text.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hbb/common.dart';
|
import 'package:flutter_hbb/common.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
@ -316,44 +317,49 @@ class _DraggableState extends State<Draggable> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class QualityMonitor extends StatelessWidget {
|
class QualityMonitor extends StatelessWidget {
|
||||||
static const textStyle = TextStyle(color: MyTheme.grayBg);
|
|
||||||
final QualityMonitorModel qualityMonitorModel;
|
final QualityMonitorModel qualityMonitorModel;
|
||||||
QualityMonitor(this.qualityMonitorModel);
|
QualityMonitor(this.qualityMonitorModel);
|
||||||
|
|
||||||
|
Widget _row(String info, String? value) {
|
||||||
|
return Row(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
flex: 8,
|
||||||
|
child: AutoSizeText(info,
|
||||||
|
style: TextStyle(color: MyTheme.grayBg),
|
||||||
|
textAlign: TextAlign.right,
|
||||||
|
maxLines: 1)),
|
||||||
|
Spacer(flex: 1),
|
||||||
|
Expanded(
|
||||||
|
flex: 8,
|
||||||
|
child: AutoSizeText(value ?? '',
|
||||||
|
style: TextStyle(color: MyTheme.grayBg), maxLines: 1)),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => ChangeNotifierProvider.value(
|
Widget build(BuildContext context) => ChangeNotifierProvider.value(
|
||||||
value: qualityMonitorModel,
|
value: qualityMonitorModel,
|
||||||
child: Consumer<QualityMonitorModel>(
|
child: Consumer<QualityMonitorModel>(
|
||||||
builder: (context, qualityMonitorModel, child) =>
|
builder: (context, qualityMonitorModel, child) => qualityMonitorModel
|
||||||
qualityMonitorModel.show
|
.show
|
||||||
? Container(
|
? Container(
|
||||||
padding: const EdgeInsets.all(8),
|
constraints: BoxConstraints(maxWidth: 200),
|
||||||
color: MyTheme.canvasColor.withAlpha(120),
|
padding: const EdgeInsets.all(8),
|
||||||
child: Column(
|
color: MyTheme.canvasColor.withAlpha(120),
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
child: Column(
|
||||||
children: [
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
Text(
|
children: [
|
||||||
"Speed: ${qualityMonitorModel.data.speed ?? ''}",
|
_row("Speed", qualityMonitorModel.data.speed ?? ''),
|
||||||
style: textStyle,
|
_row("FPS", qualityMonitorModel.data.fps ?? ''),
|
||||||
),
|
_row(
|
||||||
Text(
|
"Delay", "${qualityMonitorModel.data.delay ?? ''}ms"),
|
||||||
"FPS: ${qualityMonitorModel.data.fps ?? ''}",
|
_row("Target Bitrate",
|
||||||
style: textStyle,
|
"${qualityMonitorModel.data.targetBitrate ?? ''}kb"),
|
||||||
),
|
_row("Codec", qualityMonitorModel.data.codecFormat ?? ''),
|
||||||
Text(
|
],
|
||||||
"Delay: ${qualityMonitorModel.data.delay ?? ''} ms",
|
),
|
||||||
style: textStyle,
|
)
|
||||||
),
|
: const SizedBox.shrink()));
|
||||||
Text(
|
|
||||||
"Target Bitrate: ${qualityMonitorModel.data.targetBitrate ?? ''}kb",
|
|
||||||
style: textStyle,
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
"Codec: ${qualityMonitorModel.data.codecFormat ?? ''}",
|
|
||||||
style: textStyle,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
)
|
|
||||||
: const SizedBox.shrink()));
|
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ div#quality-monitor {
|
|||||||
padding: 5px;
|
padding: 5px;
|
||||||
min-width: 150px;
|
min-width: 150px;
|
||||||
color: azure;
|
color: azure;
|
||||||
border: solid azure;
|
border: 0.5px solid azure;
|
||||||
}
|
}
|
||||||
|
|
||||||
video#handler {
|
video#handler {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user