1. 下载SDK
iOS短视频SDK标准版 -> 下载链接
2. 工程配置
工程配置要注意,下载好的SDK里面有个工程配置(iOS).pdf
,腾讯云文档里面也有个工程配置,需要结合二者里面的说明才能配置好。以下是总结:
1. 将下载下来的
TXLiteAVSDK_UGC.framework
拷贝至工程目录;2. 在工程中添加
TXLiteAVSDK_UGC.framework
;3. 添加以下系统依赖库:
1. VideoToolbox.framework
2. SystemConfiguration.framework
3. CoreTelephony.framework
4. AVFoundation.framework
5. CoreMedia.framework
6. CoreGraphics.framework
7. libstdc++.tbd
8. libz.tbd
9. libiconv.tbd
10. libresolv.tbd
11. Accelerate.framework
4. 由于
TXLiteAVSDK_UGC.framework
不包含 Bitcode,得在工程中设置 Bitcode 为 NO:
Build Settings -> Build Options -> Enable Bitcode
5. 添加 -ObjC
SDK用到了一些类别的方法,加载类别方法需要在工程配置:
Build Settings -> Linking -> Other Linker Flags 添加 -ObjC
3. 画面预览
#import "TXLiteAVSDK_UGC/TXUGCRecord.h"
//遵守协议 <TXUGCRecordListener>
//画面预览
UIView *preViewContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)]; //准备一个预览摄像头画面的 view
TXUGCSimpleConfig *config = [[TXUGCSimpleConfig alloc] init];
//config.videoQuality = VIDEO_QUALITY_LOW; // 360p, 10秒钟视频大约0.75M
config.videoQuality = VIDEO_QUALITY_MEDIUM; // 540p, 10秒钟视频大约 1.5M (编码参数同微信iOS版小视频)
//config.videoQuality = VIDEO_QUALITY_HIGH; // 720p, 10秒钟视频大约 3M
config.frontCamera = YES; //是否前置摄像头,使用 switchCamera 可以切换
config.minDuration = 5; //视频录制的最小时长
config.maxDuration = 60; //视频录制的最大时长
[TXUGCRecord shareInstance].recordDelegate = self;
[[TXUGCRecord shareInstance] startCameraSimple:config preview:preViewContainer];
[self.view addSubview:preViewContainer];
//关闭摄像头
- (IBAction)dissmissVC:(id)sender {
[self dismissViewControllerAnimated:YES completion:^{
//页面dissmiss之后需要关闭摄像头,倘若不关闭摄像头,下次进来会打不开。
[[TXUGCRecord shareInstance] stopCameraPreview];
}];
}
4. 录制视频
[[TXUGCRecord shareInstance] startRecord]; //开始录制
[[TXUGCRecord shareInstance] stopRecord]; //结束录制
5. 视频预览
#import "TXLiteAVSDK_UGC/TXVodPlayer.h"
//遵守协议 <TXVodPlayListener>
@interface YSPreViewVC ()<TXVodPlayListener>
{
TXVodPlayer *_txVodPlayer; //这个播放器一定要设置成全局变量,不然播放不了……
}
_txVodPlayer = [[TXVodPlayer alloc] init];
[_txVodPlayer setupVideoWidget:self.view insertIndex:0];
_txVodPlayer.vodDelegate = self;
[_txVodPlayer startPlay:_localVideoPath];
6. 未完待续……
升级SDK至5.0及以上(集成短视频 licence)
1. 下载最新的SDK至本地,并替换掉工程中的旧版本SDK;
2. 去控制台配置 licence 并将 TXUgcSDK.licence 下载至本地,添加到工程目录;
3. 由于新版本SDK将发布视频接口独立出来,得去“TXUGCUploadDemo”里面将“upload”文件夹拷贝至工程目录,并修改对应的import路径;
4. 新版的TXPublishParam,将封面图改成了路径,旧版的是图片对象,这里得将图片对象先保存到本地,再将本地路径赋值给TXPublishParam的coverPath:
//保存封面图到本地
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,
YES) objectAtIndex:0];
NSString *filePath = [docPath stringByAppendingPathComponent:@"tmpCoveImage.jpg"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:filePath]) {
[fileManager removeItemAtPath:filePath error:nil];
}
NSData *coveImageData = UIImageJPEGRepresentation(videoInfo.coverImage, 0.8);
[coveImageData writeToFile:filePath atomically:YES];
//获取本地封面图路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [docPath stringByAppendingPathComponent:@"tmpCoveImage.jpg"];
param.coverPath = filePath; // 录制生成的视频首帧预览图路径
5.在AppDelegate.m文件中设置LicenseUrl和Key:
#import <TXLiteAVSDK_UGC/TXUGCBase.h>
[TXUGCBase setLicenceURL:@"LicenseUrl" key:@"Key"];