Ionic/Cordova集成VESDK报错:video composition必须有正renderSize
VESDK加载iPhone相机视频报错「video composition must have a positive renderSize」解决方案
问题场景
在Ionic/Cordova应用中集成VESDK视频编辑器,使用内置测试MP4(www/assets/test.mp4)时功能正常,但加载iPhone 11相机录制的视频时触发崩溃,Xcode抛出错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[AVPlayerItem setVideoComposition:] video composition must have a positive renderSize'
正常运行的代码:
VESDK.openEditor( (args: VideoEditorResult) => { console.log("SUCCESS ARGS", args) }, (error: any) => { console.log("FAIL ERROR", error) }, VESDK.resolveStaticResource('www/assets/test.mp4') );
出错的调用逻辑(传入相机视频路径):
VESDK.resolveStaticResource(media[0].fullPath)
解决方法
- 替换路径为
nativeURL而非fullPath
Cordova相机API返回的fullPath在iOS上存在格式兼容问题,改用nativeURL传递给VESDK:
VESDK.openEditor( (args: VideoEditorResult) => { console.log("SUCCESS ARGS", args) }, (error: any) => { console.log("FAIL ERROR", error) }, VESDK.resolveStaticResource(media[0].nativeURL) );
修复视频旋转元数据
iPhone竖屏录制的视频会通过元数据标记旋转方向,而非直接修改分辨率,部分VESDK版本无法正确解析这种格式。可通过Cordova视频处理插件先对视频转码,统一分辨率和方向后再传入编辑器。更新VESDK插件版本
确认使用的VESDK Cordova插件为最新版,旧版本可能存在iOS 13+相机视频的兼容性Bug。
内容的提问来源于stack exchange,提问作者Glen
相关产品推荐
相关产品推荐

