gpt4 book ai didi

flutter - 将视频捕获到 Canvas 抖动

转载 作者:行者123 更新时间:2023-12-03 04:36:49 28 4
gpt4 key购买 nike

我想像在js中的示例一样实现视频到 Canvas 应用程序:http://jsfiddle.net/Ls9kfwot/2/
但是我的问题是如何在特定区域拍摄视频播放器的屏幕截图?
就像drawImage中的js:

ctx.drawImage(sx,sy,swidth,sheight,x,y,width,height); // js drawimage
但是在Flutter中,我可以使用什么将视频复制到 Canvas 上?
我用视频播放器创建了一个简单的flutter项目:
  @override
Widget build(BuildContext context) {

return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: YoYoPlayer(
aspectRatio: 16 / 9,
url:
"http://upload.wikimedia.org/wikipedia/commons/7/79/Big_Buck_Bunny_small.ogv",
videoStyle: VideoStyle(),
videoLoadingStyle: VideoLoadingStyle(
loading: Center(
child: Text("Loading video"),
//capture image of video and display it
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
RenderRepaintBoundary和drawImage是解决方案?

最佳答案

是的,RenderRepaintBoundary和drawImage是您想要的。

  GlobalKey _repaintKey = GlobalKey();

@override
Widget build(BuildContext context) {

return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: RenderRepaintBoundary(
key: _repaintKey,
child: YoYoPlayer(
aspectRatio: 16 / 9,
url:
"http://upload.wikimedia.org/wikipedia/commons/7/79/Big_Buck_Bunny_small.ogv",
videoStyle: VideoStyle(),
videoLoadingStyle: VideoLoadingStyle(
loading: Center(
child: Text("Loading video"),
//capture image of video and display it
),
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
final boundary = _repaintKey.context.findRenderObject() as RenderRepaintBoundary;
final image = await boundary.toImage();
canvas.drawImage(image, Offset(10, 20), paint);

关于flutter - 将视频捕获到 Canvas 抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63955406/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com