本文主要介绍短视频SDK在iOS端的使用问题。
SDK集成
导入短视频SDK时,控制台提示category方法未找到,该如何解决?
在工程target中选择Build Setting>other linker flags,添加-ObjC。
Debug包和Release包有什么区别?
Debug包包含模拟器和真机版本,可以保证模拟器编译通过,本地调试时推荐使用Debug包;Release包只包含真机版本,在提交App Store时必须使用Release包,因为Apple要求动态库提交不能包含模拟器版本。
导入短视频SDK后运行crash,提示image not found,该如何解决?
短视频SDK使用了动态库,导入动态库需要在Embedded Binaries中添加对应的framework,详细操作请参考集成iOS端短视频SDK。
短视频SDK支持bitcode吗?
短视频SDK不支持bitcode,需要在设置中把Enable Bitcode设为NO。打包如果出现failed to verify bitcode错误,需要取消勾选rebuild for bitcode选项。
提示[NSDictionary oss_dictionaryWithXMLData:]: unrecognized selector sent to class,是什么原因?
未导入上传SDK,短视频SDK需要依赖上传SDK的AliyunOSSiOS.framework
,详细操作请参见集成iOS端短视频SDK。
视频录制
普通录制完成后,获取不到视频,该如何解决?
需要在录制完成回调函数- (void)recorderDidFinishRecording;
里才能获取到视频。
如何实现横屏录制?
录制时候设置cameraRotate
角度值,录制的视频方向会以第一段视频的角度值为准。
录制过程中更换音乐,没有生效,是什么原因?
录制过程中不支持更换音乐。
如何实现全屏录制方案?
录制分辨率9:16显示有以下两种方案:
方案一:和短视频SDK提供的demo中一致,iphone X上下留黑边。
方案二:可以调整view布局上下撑满,左右一部分内容不显示。
视频裁剪
裁剪提示1008错误,该如何解决?
关闭shouldOptimize
选项。
裁剪提示700004错误,该如何解决?
输出路径未设置,请设置输出路径,可通过AliyunCrop的outputPath
参数设置。
如何实现没有黑边的裁剪?
根据原始分辨率,做一个缩放,缩放后的分辨率保证是偶数。
如何裁剪一段音乐?
裁剪参数videoSize
和ouptutSize
都无需设置,其他操作和裁剪视频时的参数保持一致。
视频编辑
编辑完成后,合成crash,出现报错提示[null length],该如何解决?
检查水印路径(AEPGlobalWatermarkTrack的source参数)是否设置正确。
调用音量接口出现破音,是什么原因?
音量默认值100代表原声,大于100可能会破音,建议保证音量值设置在0~100。
滤镜、MV等资源找不到,该如何解决?
资源拷贝到项目中需要用folder方式导入才能保证层级关系,注意在xcode中显示的文件夹是蓝色的。
导入视频,提示operation not permit,该如何解决?
从系统相册导入的视频,需要调用系统接口获取相册访问权限,同时保证对应的AVAseset没有被销毁。
加入音频后,无法调节音量和添加、删除音效,该如何解决?
注意加入的音频需要为pcm、mp3等格式的音频文件,不能为视频文件。
视频上传
上传报错,提示没有授权,该如何解决?
问题现象:上传报错,提示没有授权。
可能原因:通过STS方式上传时所使用的STS授权已到期。
解决方案:重新获取STS授权后,再次上传。获取STS授权的流程简单介绍如下:
String policy = "{\n" +
" \"Version\": \"1\", \n" +
" \"Statement\": [\n" +
" {\n" +
" \"Action\": [\n" +
" \"vod:*\"\n" +
" ], \n" +
" \"Resource\": [\n" +
" \"*\" \n" +
" ], \n" +
" \"Effect\": \"Allow\"\n" +
" }\n" +
" ]\n" +
“}”
上传过程中断网,为什么没有失败回调?
上传过程中断网,会自动重试,如果不想走重试接口,可以手动调用取消上传的接口。
上传后的视频,通过服务端SDK下载的视频格式为什么是m3u8?
转码配置里面,如果勾选了hls选项,则会生成m3u8格式的视频。
上传App Store
提交App Store审核时报错,该如何解决?
问题现象:提示Invalid CFBundleSupportedPlatforms value错误。
问题原因:4.3.1和3.15.0版本的QuCore-ThirdParty会存在上述问题。QuCore-ThirdParty中info.plist的CFBundleSupportedPlatforms支持的平台为iPhoneSimulator。
解决方案:
方法一:将info.plist中CFBundleSupportedPlatforms下支持的平台值改为iPhoneOS。
方法二:使用其他QuCore-ThirdParty的版本,推荐版本如下表所示。
QuCore-ThirdParty版本 | 短视频SDK版本 |
≥ 4.3.2(推荐) | ≥ v3.26.0 |
4.3.1(不推荐) | v3.26.0 ~ v3.29.0 |
4.3.0 | v3.24.0 ~ v3.25.1 |
3.15.0 | < v3.24.0 |
AlivcFFmpeg版本依赖问题
如果App同时引入短视频SDK和播放器SDK(不包含AlivcFFmpeg版本),请确保引入正确的AlivcFFmpeg版本,否则会导致短视频或播放器的功能使用失败。
AlivcFFmpeg版本 | 短视频SDK版本 | 播放器SDK版本 | 备注 |
pod 'QuCore-ThirdParty', '4.3.2 | ≥ v3.27.0 | ≥ v5.4.4.0 | 共用 |
pod 'QuCore-ThirdParty', '4.3.1 | ≥ v3.26.0 | ≥ v5.4.2.0 | 共用 |
pod 'QuCore-ThirdParty', '4.3.0 | ≥ v3.24.0 | ≥ v5.4.2.0 | 共用 |
pod 'QuCore-ThirdParty', '3.15.0 | < v3.24.0 | < v5.4.2.0 | 共用 |