从4.5版本开始,TXUGCPublish
相关的类从 SDK 上移到了 Demo 层,开发者如果需要使用,使用时直接把VideoUpload
目录整个拖入自己的工程即可。
报错信息:
解决方法:执行 pod install。
连接 Xcode 调试,短视频录制报错,报错信息:Main Thread Checker: UI API called on a background thread
Main Thread Checker
的话,就会报错。Product
>Scheme
>Edit Scheme
>Run
>Diagnostics
,取消勾选Main Thread Checker
。
说明:该问题在4.9版本已经修复。
执行 pod install 即可。
SDK 用到了一些类别的方法,加载类别方法需要在工程配置:Build Settings
>Linking
>Other Linker Flags
添加-ObjC
。
startCameraSimple:preview:
>setBGM:
>startRecord
。注意:很多接口调用有时序要求,不然会无效。一般在注释上会有说明。
例如短视频录制的setVideoResolution:
、setVideoBitrate:
、setAspectRatio:
等接口都需要在startRecord
之前设置才有效。
目前逻辑暂未支持循环播放。
endTime
时没有完成回调?如果设置的endTime
小于音乐文件总时长,4.6及之前的版本是在 BGM 播放完后才会触发完成回调,从4.7版本开始在endTime
时触发完成回调。
苹果手机摄像头第一次打开时(冷启动)耗时相对较长,通过系统接口打开摄像头也是如此。
因为摄像头打开的操作不适合放在子线程去做,经过测试在子线程中进行打开摄像头操作耗时会更大,并且在主线程连续打开/关闭摄像头的时候,子线程的响应延迟会更高,体验不好。
在第一次录制完成的时候,不要调用stopRecord
和stopCameraPreview
(调用之后不能再继续录制,只能重新录制),可以调用pauseRecord
,然后通过TXUGCPartsManager.getVideoPathList
获取已经录取的视频片段,通过TXVideoJoiner.joinVideo
合成最终视频(4.5之前版本),还可以直接调用TXUGCPartsManager.joinAllParts
合成最终视频,这个方法合成速度更快(4.5以后版本支持),这样当返回继续录制的时候,所有的录制状态都在,可以继续录制。
iOS 中的 AudioSession 是所有音视频应用共用的,使用其他播放器播放的时候,AudioSession 会被占用,播放结束时如果 AudioSession 没有让出或者让出不及时,会导致录制模块的 AudioSession 失效,SDK 提供了-(void) pauseAudioSession
和-(void) resumeAudioSession
两个接口,在去其他播放器预览的时候先调用pauseAudioSession
,返回继续录制前调用resumeAudioSession
。
码率和分辨率不匹配,录制出来的视频就会不清晰。可以通过适当增大码率、开启B帧来提升画质。
生成视频默认采用的是硬编码(编码效率高,编码出来的图像效果好),硬编码器在程序进后台后会停止工作,从而导致视频生成失败。SDK 提供了两个接口pauseGenerate
和resumeGenerate
,App 进后台时可以调用pauseGenerate
暂停视频生成,App 回到前台后再调用resumeGenerate
继续视频生成。
注意:调用
resumeGenerate
,SDK 将重启硬编码器,有一定的概率重启失败,或重启后前几帧数据编码失败。此时,SDK 内部会在TXVideoGenerateListener
抛出错误事件,收到错误事件后需要重新生成视频。
文件上传状态码:
短视频 SDK 可以实现拍照功能,开始预览后调用TXUGCRecord
类的snapshot
接口获取图片即可。
该错误是编译器没有检测到 TXVideoInfo 类,建议检查 SDK(framework)是否正确,可依照 文档步骤 重新导入工程。
本页内容是否解决了您的问题?