render method
Future<File>
render({
- required RenderConfig config,
- required Directory outDir,
- required FramePump pump,
- required GlobalKey<
State< boundaryKey,StatefulWidget> > - required String compositionKey,
- required FfmpegRunner runner,
- Iterable<
MediaSource> mediaSources = const [], - Iterable<
AudioSource> audioSources = const [], - AudioMixStager? stageAudio,
- Export? export,
- int? posterFrame,
- ProgressCallback? onProgress,
captureToDirectory followed by an in-process encode through runner,
returning the encoded outDir/out.mp4.
Implementation
Future<File> render({
required RenderConfig config,
required Directory outDir,
required FramePump pump,
required GlobalKey boundaryKey,
required String compositionKey,
required FfmpegRunner runner,
Iterable<MediaSource> mediaSources = const [],
Iterable<AudioSource> audioSources = const [],
AudioMixStager? stageAudio,
Export? export,
int? posterFrame,
ProgressCallback? onProgress,
}) async {
final manifest = await captureToDirectory(
config: config,
outDir: outDir,
pump: pump,
boundaryKey: boundaryKey,
compositionKey: compositionKey,
mediaSources: mediaSources,
audioSources: audioSources,
stageAudio: stageAudio,
export: export,
posterFrame: posterFrame,
onProgress: onProgress,
);
await runner.encode(args: manifest.ffmpegArgs, sandbox: outDir);
final posterArgs = manifest.posterArgs;
if (posterArgs != null) {
await runner.encode(args: posterArgs, sandbox: outDir);
}
return File('${outDir.path}/${manifest.outputFileName}');
}