当前位置: 首页 > 知识库问答 >
问题:

视频通话时如何在flutter中截图?

庞旺
2023-03-14

我目前正在使用agora SDK进行flutter视频通话。在视频通话期间,我需要截图。只有在视频通话屏幕上,截图是黑色的,在其他屏幕上截图没有问题。通过使用RenderrePaintBarreden,我无法进行截图,

用于截图的代码:

Future<void> _capturePng() async {
    try {
      RenderRepaintBoundary boundary =
          _globalKey.currentContext.findRenderObject();
      ui.Image image = await boundary.toImage(pixelRatio: 3.0);
      ByteData byteData =
          await image.toByteData(format: ui.ImageByteFormat.png);
      var pngBytes = byteData.buffer.asUint8List();
      final result = await ImageGallerySaver.saveImage(pngBytes);
    } catch (e) {
      print(e);
    }  }  Widget build(BuildContext context) {
    return RepaintBoundary(
        key: _globalKey,
        child: Scaffold(
            backgroundColor: Colors.black,
            body: GestureDetector(
                onDoubleTap: () => _capturePng(),
                child: Screenshot(
                  controller: screenshotController,
                  child: Center(
                    child: Stack(
                      children: <Widget>[
                        _viewRows(),
                        _toolbar(),
                      ],
                    ),
                  ),
                ))));
}

问题截图:

我也尝试使用这个插件:屏幕截图:^0.1.1,但仍然出现问题

共有1个答案

锺离鸿
2023-03-14

我想你的截图代码是对的。问题可能出在您放置repaintborder的地方。通常,repaintbounder中提供的将能够截图整个子层次结构。因此,我认为解决方案是将您的小部件作为子部件,它将您的实时视频提要呈现在repaintbounder中。例如

Widget build(context){
   return RepaintBoundary(
      key: _yourGlobalKey,
      child: _yourLiveVideoFeedWidget
   );
}
 类似资料:
  • 如何在Android中通过任何视频链接播放视频(例如—https://youtu.be/SiD77g9KfhA“也可以是另一个媒体门户的另一个视频链接)。我尝试过这样做,但遇到了一个错误。 我的代码 错误。

  • 本文向大家介绍H5播放的video视频,如何实现对视频截图?相关面试题,主要包含被问及H5播放的video视频,如何实现对视频截图?时的应答技巧和注意事项,需要的朋友参考一下

  • 但我只想要一张截图,比如01:23:45。或1截图在86%英寸。 对于ffmpegthumbnailer来说,这一切都是可能的,但这是另一个我不想依赖的依赖项。我希望能够用FFMPEG来完成。

  • 我使用aws kinesis video stream webRTC在reactjs中进行视频聊天。一切都很好。但是我想把视频存储在s3 Bucket中。我应该如何实现这个视频存储?

  • 视频通话中,默认显示1个主屏+4个小屏,若想查看其他人的屏幕,提供两种方式: 1、 在小屏中进行滑动交互,即可通过滑动轮播的形式在小窗口中查看其他人的画面; 2、 在成员管理界面中,右键或点击某个人成员,即可呈现二级菜单,二级菜单中选择置顶到主屏即可。

  • 我正在尝试开发一个应用程序,允许我在录制视频时绘制视频,然后将录制的视频和视频保存在一个mp4文件中供以后使用。另外,我想使用camera2库,特别是我需要我的应用程序在高于API 21的设备上运行,我总是避免使用不推荐的库。 我尝试了很多方法,包括FFmpeg,其中我放置了TextureView的覆盖层。getBitmap()(来自摄影机)和从画布获取的位图。它工作正常,但由于它的功能很慢,视频