
TAVMagicCutFlutter 复制到项目根目录,也可以根据项目结构需要,复制到其他可访问到的目录。pubspec.yaml 中添加依赖,并指定 SDK 的目录,这里以根目录为例。tavmagic_cut_flutter:path: ./TAVMagicCutFlutter/Flutter
Resource 拷贝并拖入到 app 项目工程中。example/android/app/src/main/assets 下的资源,复制到自己 Flutter 项目安卓主工程(一般为 app)的 src/main/assets 下, 如果 assets 不存在,可手动创建。example/ios/Resource 下的 Resource 目录,复制到自己 Flutter 项目 iOS 的主工程根目录下。随后打开 Xcode,打开您的 Flutter iOS 项目,Runner)点击右键,选择 Add Files to XXX,随后选择 Resource 文件夹,并单击 add。Action 选择为 Reference files in place,Groups 选择为 Create groups。FTAVMagicKitBase.instance.setLicense(TAV_MAGIC_LICENSE, TAV_MAGIC_KEY, listener: (errorCode, msg){if (errorCode == 0) {// success} else {// failed}});
_editProcessor = await tavMagicKit().openSelectEdit(selectOptions: FTAVKitSelectorOption());
tavMagicKit().openMediaSelected((resultList) {// get media}, options: FTAVKitSelectorOption());
FTAVKitSelectorOption()..displayColumnCount = 3 // display Column Count..mediaCategory = FTAVMediaCategory.ALL; // media category
_editProcessor = await tavMagicKit().openRecordEdit();
_editProcessor = await tavMagicKit().openDraftListForEdit();
_editProcessor = await tavMagicKit().openEdit(editOption: FTAVKitEditOptions());
_editProcessor?.exitEdit();
_editProcessor?.setEditEventListener((code, params) async {if (code == FTAVEditResultEventCode.PUBLISH) {String? editorKey = params[FTAVEditResultParamKey.EDITOR_KEY]?.toString();if (null != editorKey) {curGerTaskId = await tavMagicKit().generateVideoByEditKey(editorKey, listener: FTAVGenerateListener(onGenerateStarted: () {if (_progressController != null) {_progressController!.close();_progressController = null;}_progressController = DemoProgressController();_progressController!.show(context: context, onCancel: () {tavMagicKit().cancelGenerateByTaskId(curGerTaskId!);_progressController?.close();});},onGenerateProgress: (progress) {_progressController?.updateProgress(progress);},onGenerateCompleted: (int code, String msg, String outputPath) {_progressController?.close();if (code == FTAVGenerateResultCode.GENERATE_RESULT_SUCCEED) {////// release editor///tavMagicKit().releaseEditorByEditKey(editorKey);// jump to video pageNavigator.of(context).push(MaterialPageRoute(builder : (context) => VideoPage(outputPath),));} else {ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('video generate error:$code, msg:$msg')));}}));}}});
tavMagicKit().releaseEditorByEditKey(editorKey);
curGerTaskId = await tavMagicKit().generateVideoByEditKey(editorKey, listener: FTAVGenerateListener(onGenerateStarted: (){},onGenerateProgress: (progress){},onGenerateCompleted: (int code, String msg, String outputPath) {}));
tavMagicKit().cancelGenerateByTaskId(curGerTaskId);
文档反馈