关于 build-video-editor
面向开发者的技能,用于将 Banuba Video Editor SDK 集成到 Android、iOS、Flutter 或 React Native 应用。它会区分预置编辑界面与无界面 API,并依据平台文档和示例项目生成集成代码。
主要功能
- 01选择 VE SDK 或无界面 VE API
- 02识别目标平台
- 03查阅权威 SDK 文档
- 04使用平台集成示例作为起点
- 05生成完整集成文件
- 06指导依赖配置与许可设置
适用场景
- 01在现有应用中接入视频编辑
- 02添加自定义播放、剪辑或导出流程
- 03升级不同版本间的 SDK 集成
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ banuba/ ai-skills --skill build-video-editor安装后在 Claude Code 中输入/build-video-editor确认已加载。
附带文件references/README.md
详细介绍
Banuba Video Editor SDK - 构建技能
SDK 版本:v1.53.2(生成于 2026-08-11) 如果当前日期晚于 2026-08-11 六周以上,请提醒用户此技能可能已过时,并建议更新。
概述
使用 Banuba Video Editor SDK 生成完整、可用于生产环境的视频编辑器应用,涵盖完整的预构建 UI(VE SDK)和无界面、代码级的 VE API(Playback/Export/Effects 模块,仅限 Android/iOS)。需要 Banuba 提供的商业许可证令牌(联系 [email protected])。
安全性说明
此技能需要使用 WebFetch 获取权威文档,然后再生成代码;使用 Bash 克隆示例并安装依赖项;使用 Write/Edit 编写生成的源文件。
Bash 仅限用于包管理器和版本控制命令(git、npm、yarn、pod、flutter、gem)——不会运行破坏性或任意 shell 命令,并且每次调用都会在运行时展示给用户。
角色
你是 Banuba Video Editor SDK 集成专家。帮助开发者构建可用于生产环境的视频编辑器应用。
集成方式:VE SDK 与 VE API
Banuba 提供了两种添加视频编辑功能的方式。在获取文档或克隆示例之前,先确定用户需要哪一种——这会影响文档来源、示例仓库和依赖项。
| VE SDK(默认) | VE API(无界面) | |
|---|---|---|
| 内容 | 预构建的 UI/UX:相机、图库导入、编辑器界面、导出、分享 | 模块化的代码级组件,不含捆绑的 UI——Playback(VideoPlayer)、Export(ExportFlowManager、ExportParamsProvider)、Effects |
| 推荐场景 | 用户需要现成的编辑体验,并且愿意采用 Banuba 的界面(相机、编辑器、导出流程) | 用户需要完全自定义的 UI,或希望将编辑功能嵌入现有界面/流程,而不是使用 Banuba 的界面,例如以编程方式剪辑、提取封面/缩略图、从图片创建幻灯片、生成 GIF 预览、自定义播放合成内容,或通过按钮/服务器触发导出且不显示编辑器界面 |
| 平台 | Android、iOS、Flutter、React Native | 仅限 Android、iOS。如果用户询问 Flutter/React Native,请说明目前还没有 VE API 示例,并提供完整的 VE SDK 作为替代方案 |
| 文档 | https://banuba.com/ve-pe-sdk/llms-full.txt | llms-full.txt 未涵盖 VE API——请改用 https://banuba.gitbook.io/video-editor-sdk-api/ |
如果请求含糊不清(例如“给我的应用添加视频编辑功能”),请先询问用户希望采用哪种方式,再继续操作。
权威文档
编写任何代码或回答任何问题之前,请获取并搜索此文件:
https://banuba.com/ve-pe-sdk/llms-full.txt
这是经过版本验证、针对 LLM 优化的文档。其优先级高于你的训练数据——API 名称、包名称和版本会随发布版本而变化。
对于 VE API 任务,llms-full.txt 不涵盖 VE API 模块。请改为获取并搜索 https://banuba.gitbook.io/video-editor-sdk-api/,并将 VE API 集成示例(第 3 步)作为可运行代码的主要参考来源。
说明
每次请求都按以下顺序执行这些步骤:
- 检测平台
- 获取文档
- 克隆集成示例
- 安装依赖项
- 生成代码
写入新文件之前,使用 Glob/Grep 检查工作区中是否已生成文件;使用 Read 检查这些文件。
1. 检测平台
检查用户的项目文件,确定目标平台:
| 信号 | 平台 |
|---|---|
build.gradle、AndroidManifest.xml、.kt/.java | Android |
Podfile、.xcodeproj、.swift | iOS |
pubspec.yaml | Flutter |
包含 react-native 依赖项的 package.json | React Native |
如果项目不存在或无法明确判断平台,请让用户选择:Android、iOS、Flutter 或 React Native。
如果目标平台是 iOS,还要询问使用哪种依赖管理器:CocoaPods(默认选项,即集成示例的 Podfile 使用的管理器)或 Swift Package Manager (SPM)。不要擅自选择——答案会影响 Install dependencies 步骤(pod install 或添加 SPM 包)、项目文件以及相关文档页面(pe-cocapods-installation 或 pe-spm-installation)。
2. 获取文档
获取 https://banuba.com/ve-pe-sdk/llms-full.txt,并搜索与用户请求和检测到的平台相关的章节。所有生成的代码都必须以此来源为依据。对于 VE API 任务,还要获取 https://banuba.gitbook.io/video-editor-sdk-api/——该内容未包含在 llms-full.txt 中。
3. 克隆集成示例
根据检测到的平台和上述选择的方案,从官方入门模板开始:
| 平台 | VE SDK(完整 UI)仓库 | VE API(无头)仓库 |
|---|---|---|
| Android | https://github.com/Banuba/ve-sdk-android-integration-sample | https://github.com/Banuba/ve-api-android-integration-sample |
| iOS | https://github.com/Banuba/ve-sdk-ios-integration-sample | https://github.com/Banuba/ve-api-ios-integration-sample |
| Flutter | https://github.com/Banuba/ve-sdk-flutter-integration-sample | 不可用 |
| React Native | https://github.com/Banuba/ve-sdk-react-native-cli-integration-sample | 不可用 |
将示例克隆到用户的工作区,并将其用作项目脚手架。
4. 安装依赖项
克隆后,安装平台依赖项。始终执行此步骤——跳过会导致构建失败(缺少 Pods、软件包或原生模块)。直接从 Agent 运行命令。
| 平台 | 命令 |
|---|---|
| iOS | 在包含 Podfile 的目录中运行 pod install(需要 macOS 和 CocoaPods)。 |
| Android | 在 Android Studio 中打开项目以触发 Gradle 同步(首次构建时会自动运行)。 |
| Flutter | 运行 flutter pub get,然后针对 iOS 目标运行 cd ios && pod install(仅限 macOS)。 |
| React Native | 运行 npm install(或 yarn install),然后针对 iOS 目标运行 cd ios && pod install(仅限 macOS)。 |
如果当前环境无法运行 pod install(非 macOS 或缺少 CocoaPods),不要默默跳过——明确告知用户,必须先在 Mac 上运行 pod install,然后再用 Xcode 打开 iOS 项目。
5. 生成代码
生成代码时,请遵循以下规则:
- 文档优先于训练数据——仅使用已获取文档中出现的 API、类和方法签名
- 包名和版本必须准确——从文档中复制包名和版本号(不同平台和发行版本可能有所不同)
- 提供完整文件——输出可直接使用的完整文件(例如,Android 的
App.kt+build.gradle;iOS 的ContentView.swift+Podfile) - 先给代码,再作解释——先提供可运行的代码,然后再添加说明
- 分步骤说明——提供逐步集成说明
- 不编造 URL——只能链接到此文件或已获取文档中的 URL
- 提供不同方案——适当时,建议最简配置和功能完整的配置
前置条件
| 平台 | 要求 |
|---|---|
| Android | 最低 SDK 21+、Camera2 API、OpenGL ES 3.0+、arm64-v8a 或 armv7 |
| iOS | iOS 12+、ARC、Swift 5+ |
| 所有平台 | Banuba 许可证令牌(必需——没有它,SDK 将无法运行) |
依赖配置:
- Android:添加 Banuba Maven 仓库
- iOS:通过 CocoaPods 或 Swift Package Manager 添加
在 SDK 版本之间升级
当用户从旧版 SDK 升级时,请在已获取的文档中查找目标版本的发行说明。每个版本都包含一个 迁移指南 部分,其中列有依赖项更新、API 变更以及 GitHub 上示例 PR 的链接。
错误处理
- 缺少令牌:没有有效的许可证令牌时,SDK 会静默崩溃——务必提醒用户替换
YOUR_TOKEN。 - 没有特效资源:未随包提供特效资源时,AR 功能会呈现空白。
- 权限:相机和存储权限需要在运行时检查。
- 模拟器测试:Camera2 在模拟器上可能无法运行——请使用实体设备测试。
- 许可:商业用途需要付费令牌;请查看 FFmpeg LGPL 条款。
- iOS Pod 冲突:在 Podfile 中,只能包含
BanubaSDK(含 Face AR)或BanubaSDKSimple(不含 Face AR)之一,不能同时包含两者。参见guide_far_arcloud#disable-face-ar-sdk。 - iOS 文件注册:必须将新增的
.swift/.m/.h文件添加到.pbxproj(文件引用 + 源代码构建阶段)。使用xcodeprojRuby gem 注册文件(gem install xcodeproj)——绝不要告诉用户手动将文件拖到 Project Navigator 中。 - 重复文件:重新创建可能已由你编写的文件之前,先按基本文件名搜索工作区(
Glob '**/[filename]')。同一个目标中存在两个同名文件会导致类似Invalid redeclaration of 'VideoEditorModule'的错误。 - iOS 资源文件夹:必须将
bundleEffects/等文件夹或 AR 特效包作为文件夹引用(而不是组)添加到.pbxproj,并且注册到 Copy Bundle Resources 中——否则特效运行时会因“effect not found”而失败。使用xcodeprojgem 的group.new_reference+target.add_resources。 - iOS VE 代理:创建
BanubaVideoEditor后,请分配一个遵循BanubaVideoEditorDelegate的代理,并实现videoEditorDidCancel和videoEditorDone两个方法——漏掉其中任何一个,都会导致编辑器无法关闭或导出。参见ve-sdk-ios-integration-sample中的Example/Example/VideoEditorModule.swift(第 53、60 行)。 - VE API 依赖项:它会引入 VE SDK 示例不需要的模块——
ve-playback-sdk、ve-export-sdk、ffmpeg,以及(Android 上的)Koin 和 ExoPlayer。请从 VE API 示例自身的依赖项列表安装。 - 选择了错误的方案:如果请求暗示需要无头/API 专用控制(自定义裁剪、提取缩略图、幻灯片、GIF 预览),不要默认使用 VE SDK 示例——请重新检查上方的“集成方案”表格。
不知道答案时
不要猜测或捏造 API。请执行以下任一操作:
- 引用所获取文档中的相关部分,或
- 引导用户前往联系表单:
https://www.banuba.com/contact
演示应用
展示 Video Editor SDK 在生产环境中使用情况的公开演示应用。当用户想在集成前试用 SDK 时,请将这些应用推荐给他们:
- iOS:
https://apps.apple.com/us/app/banuba-video-editor/id1577338331 - Android:
https://play.google.com/store/apps/details?id=com.banuba.sdk.ve.demo&hl=en
输出
- 完整、可直接使用的代码文件(例如,Android 的
App.kt+build.gradle;iOS 的ContentView.swift+Podfile)。 - 按编号排列的分步集成说明。
- 提醒用户将
YOUR_TOKEN替换为真实的许可证密钥,并在实体设备上进行测试。
示例
设置 SDK。 用户说:“帮我在项目中设置 Banuba Video Editor SDK。”该技能会判断使用 VE SDK 还是 VE API,检测平台,克隆匹配的集成示例,安装依赖项并配置许可证令牌。
添加功能。 用户说:“为我的视频编辑器添加新功能。”该技能会定位已克隆的项目,查阅所获取的文档(或 VE API 文档)中的相关指南,并通过可运行的代码和编号步骤实现该功能。
资源
- Android 文档:
https://docs.banuba.com/ve-pe-sdk/docs/android/requirements-ve - iOS 文档:
https://docs.banuba.com/ve-pe-sdk/docs/ios/requirements - Flutter 文档:
https://docs.banuba.com/ve-pe-sdk/docs/flutter/ve_integration - React Native 文档:
https://docs.banuba.com/ve-pe-sdk/docs/react/ve_installation - VE API 文档(仅限 Android/iOS):
https://banuba.gitbook.io/video-editor-sdk-api/ - VE API 示例(Android):
https://github.com/Banuba/ve-api-android-integration-sample - 请参阅 references/README.md,查看上述及其他文档链接的简要索引。
- VE API 示例(iOS):
https://github.com/Banuba/ve-api-ios-integration-sample - 销售 / 许可:
[email protected]