|
@@ -63,6 +63,9 @@ class _VidCanvasPlayerState extends State<VidCanvasPlayer> {
|
|
|
}
|
|
|
|
|
|
void loadFrame(Uint8List bytes) async {
|
|
|
+ // List<StackTrace>? debugList = image?.debugGetOpenHandleStackTraces();
|
|
|
+ // print("${DateTime.now()} Load frame \n ${debugList.toString()}");
|
|
|
+ // image?.dispose();
|
|
|
image = await decodeImageFromList(bytes);
|
|
|
setState(() {});
|
|
|
}
|
|
@@ -76,25 +79,21 @@ class _VidCanvasPlayerState extends State<VidCanvasPlayer> {
|
|
|
Widget? child;
|
|
|
switch (widget.controller.status) {
|
|
|
case VidPlayStatus.init:
|
|
|
- child = Container(child: const Text("Loading"));
|
|
|
+ child = const Text("Loading");
|
|
|
break;
|
|
|
case VidPlayStatus.ready:
|
|
|
- child = Container(child: const Text("Ready"));
|
|
|
+ child = const Text("Ready");
|
|
|
break;
|
|
|
case VidPlayStatus.loadFail:
|
|
|
- child = Container(child: const Text("Load fail"));
|
|
|
+ child = const Text("Load fail");
|
|
|
break;
|
|
|
case VidPlayStatus.play:
|
|
|
- child = buildFrameView(context);
|
|
|
- break;
|
|
|
case VidPlayStatus.pause:
|
|
|
- child = Text(
|
|
|
- widget.controller.currentFrameIndex.toString(),
|
|
|
- );
|
|
|
+ child = buildFrameView(context);
|
|
|
break;
|
|
|
case VidPlayStatus.stop:
|
|
|
case VidPlayStatus.dispose:
|
|
|
- child = Container(child: const Text("Closed"));
|
|
|
+ child = const Text("Closed");
|
|
|
break;
|
|
|
}
|
|
|
return buildBox(context, child);
|
|
@@ -109,10 +108,11 @@ class _VidCanvasPlayerState extends State<VidCanvasPlayer> {
|
|
|
|
|
|
Widget buildFrameView(BuildContext context) {
|
|
|
if (image != null) {
|
|
|
- // final size = MediaQuery.of(context).size;
|
|
|
+ final size = MediaQuery.of(context).size;
|
|
|
return CustomPaint(
|
|
|
- painter: VidPainter(image: image),
|
|
|
+ painter: VidPainter(image: image!, contextSize: size),
|
|
|
isComplex: false, //是否为复杂图像(true会缓存)
|
|
|
+ size: size,
|
|
|
);
|
|
|
} else {
|
|
|
return Container();
|