addCustomAsset method
Future<bool>
addCustomAsset({
- XFile? file,
- String? url,
- required CustomAssetType type,
- String uniqueId = '',
- Widget customWidgetBuilder(
- BuildContext context,
- dynamic onPlay(),
- dynamic onPause(),
- ValueNotifier<
bool> isPlay,
Add Custom file widget asset
Implementation
Future<bool> addCustomAsset({
XFile? file,
String? url,
required CustomAssetType type,
String uniqueId = '',
Widget Function(BuildContext context, Function() onPlay, Function() onPause,
ValueNotifier<bool> isPlay)?
customWidgetBuilder,
}) async {
final Completer<bool> completer = Completer<bool>();
assert(file != null || url != null);
switch (type) {
case CustomAssetType.image:
assets.addAsset(
StoryElement(
type: ItemType.image,
position: const Offset(0.25, 0.25),
value: file?.path ?? url ?? '',
elementFile: file ?? XFile(url ?? ''),
customWidgetUniqueID: uniqueId,
),
);
completer.complete(true);
break;
case CustomAssetType.video:
if (file != null && _isAvailableToAddVideo) {
unawaited(showVideoOverlay(
videoFile: file,
editorController: this,
uniqueId: uniqueId,
completer: completer,
));
}
break;
case CustomAssetType.audio:
unawaited(showAudioOverlay(
audioFile: file,
audioUrl: url,
editorController: this,
uniqueId: uniqueId,
customWidgetBuilder: customWidgetBuilder,
completer: completer,
));
break;
}
return completer.future;
}