iOS 集成腾讯云短视频

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,得在工程中设置 BitcodeNO

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"];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容