bilibili / WebAV

WebAV is an SDK built on WebCodecs, designed for creating and editing video files on the web platform. WebAV 是基于 WebCodecs 构建的 SDK,用于在 Web 平台上创建/编辑视频文件。
https://bilibili.github.io/WebAV/
MIT License
1.18k stars 121 forks source link

视频合成时clone is not a function #100

Closed gubeils closed 5 months ago

gubeils commented 6 months ago

image

设置了main: true ,显示一直克隆 c976de0ad8ac90adda4d5c5e08ff594

源代码在这 7a74b8626b19de477490ad60d0f3d9b

gubeils commented 6 months ago

v0.3.3 版本没有发现这个问题 后续版本都会有这个问题

hughfenghen commented 6 months ago

新版本 需要自定义 clip 实现 clone 方法 参考 #66

hughfenghen commented 6 months ago

IClip.clone 可能是一个错误的设计,后续考虑将 Clip 设计成不可变对象,变更操作返回新对象,原对象不变 以消除 clone,简化使用。

hughfenghen commented 5 months ago

经过思考,IClip.clone 无法消除,必须保留。 IClip 是素材(视频、音频、图片等)抽象, 素材必须实现 clone

为了让同一个素材在用户编辑预览的同时,后台进行视频合成导出,而不会不相互干扰,素材必须允许 clone。

所以,若升级后碰到该错误,请给自定义素材实现 IClip.clone 方法,可以参考项目中 MP4Clip、AudioClip 的代码