iOS端

本文主要介绍短视频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错误,该如何解决?

输出路径未设置,请设置输出路径,可通过AliyunCropoutputPath参数设置。

如何实现没有黑边的裁剪?

根据原始分辨率,做一个缩放,缩放后的分辨率保证是偶数。

如何裁剪一段音乐?

裁剪参数videoSizeouptutSize都无需设置,其他操作和裁剪视频时的参数保持一致。

视频编辑

编辑完成后,合成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

共用