-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC] AVCanvas 支持自定义 UI 组件 #325
Comments
有自定义 UI 诉求的同学,可以看看是否满足自己的场景,参与讨论。 |
目前使用情况看,有一定的自定义需求,主要集中在自定义光标,控制点样式调整,未来可能会涉及到旋转中辅助线的展示。 |
有一个疑问,目前rect只能在av-canvas的容器内移动,容器外不展示也不可点选,这个有什么办法修改吗?目前移动是有一定安全边界的,但是会造成过小的素材无法移动到边缘位置,我觉得rect不可以完全移出容器是合理的做法。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
时间:2024-11-16
背景/动机
@webav/av-cliper
提供了基础的视频处理能力,不需要 UI(如:自动化视频处理)或 UI 非常简单的产品可以直接基于 av-cliper 构建。在需要用户介入视频编辑创作的众多场景中,如视频剪辑、直播推流、视频相册、视频模板等;
@webav/av-canvas
提供了画布与精灵(Sprite)等 API,且内置了最基础的 UI(移动、缩放、旋转),开发者可基于 av-canvas 快速构建相关产品。但
@webav/av-canvas
内置的 UI 终究无法满足多样化的诉求;av-canvas 定位是一个与 UI 框架无关的库,无法选择某个成熟框架在项目内部构建复杂 UI。
所以需要设计新的 API,允许开发者使用任意技术栈构建丰富或定制化 UI。
开放的 API 能满足:
相关 issue:#78, #224
详细设计
创建 AVCanvas 时可以传入 UI Plugin,插件行为将覆盖 AVCanvas 的默认实现。
目前仅支持覆盖选中 Sprite 的边框 和 缩放、旋转控制点的绘制效果。
示例:自定义边框、控制点的样式
这是内置的边框绘制源代码。
可能存在问题
可替代的方案
可能导致自定义混乱,无法复用
降低了自定义成本,但牺牲了 API 通用性
未来的可能性
如果社区有诉求与足够的理由,可以考虑逐渐放开限制,允许覆盖 AVCanvas 内置的所有 UI,包括:
The text was updated successfully, but these errors were encountered: