🚧 This is highly experimental! 🚧
🚧 API is subject to change! 🚧
This is a package to create recordings of Flutter widgets. The recordings can be exported as GIFs.
This is pure Flutter/Dart implementation without any dependencies on native or platform code. Thus it runs on all supported platforms.
Please note, that the encoding of the GIF takes a lot of time. On web it is basically useless because it takes so much time.
Please see the example if you want to know how it works.
First, you will need to add screen_recorder
to your pubspec.yaml
:
dependencies:
flutter:
sdk: flutter
screen_recorder: x.y.z # use the latest version found on pub.dev
Then, run flutter packages get
in your terminal.
Wrap your widget which should be recorded in a ScreenRecorder
:
ScreenRecorder(
height: 200,
width: 200,
background: Colors.white,
controller: ScreenRecorderController(
pixelRatio: 0.5,
skipFramesBetweenCaptures: 2,
),
child: // child which should be recorded
);
Then use ScreenRecorderController.start()
to start recording and
ScreenRecorderController.stop()
to stop the recording.
final gif = await ScreenRecorderController.export()
gives you the result which can be written to disk.
- Platform views are invisible in screenshots (like webview or Google Maps). For further details, see this Flutter issue.
- Web only works with Flutter's CanvasKit Renderer, for more information see Flutter Web Renderer docs.
- This package does not and will not support audio until it is possible in a pure Dart/Flutter environment.
- This package does not and will not support exporting as a video until it is possible in a pure Dart/Flutter environment.
I'm working on my packages on my free-time, but I don't have as much time as I would. If this package or any other package I created is helping you, please consider to sponsor me. By doing so, I will prioritize your issues or your pull-requests before the others.