1. 下載SDK
iOS短視頻SDK標準版 -> 下載鏈接
2. 工程配置
工程配置要注意,下載好的SDK里面有個工程配置(iOS).pdf,騰訊云文檔里面也有個工程配置,需要結(jié)合二者里面的說明才能配置好。以下是總結(jié):
1. 將下載下來的
TXLiteAVSDK_UGC.framework拷貝至工程目錄;2. 在工程中添加
TXLiteAVSDK_UGC.framework;3. 添加以下系統(tǒng)依賴庫:
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.framework4. 由于
TXLiteAVSDK_UGC.framework不包含 Bitcode,得在工程中設(shè)置 Bitcode 為 NO:
Build Settings -> Build Options -> Enable Bitcode5. 添加 -ObjC
SDK用到了一些類別的方法,加載類別方法需要在工程配置:
Build Settings -> Linking -> Other Linker Flags 添加 -ObjC
3. 畫面預(yù)覽
#import "TXLiteAVSDK_UGC/TXUGCRecord.h"
//遵守協(xié)議 <TXUGCRecordListener>
//畫面預(yù)覽
UIView *preViewContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)]; //準備一個預(yù)覽攝像頭畫面的 view
TXUGCSimpleConfig *config = [[TXUGCSimpleConfig alloc] init];
//config.videoQuality = VIDEO_QUALITY_LOW; // 360p, 10秒鐘視頻大約0.75M
config.videoQuality = VIDEO_QUALITY_MEDIUM; // 540p, 10秒鐘視頻大約 1.5M (編碼參數(shù)同微信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];
//關(guān)閉攝像頭
- (IBAction)dissmissVC:(id)sender {
[self dismissViewControllerAnimated:YES completion:^{
//頁面dissmiss之后需要關(guān)閉攝像頭,倘若不關(guān)閉攝像頭,下次進來會打不開。
[[TXUGCRecord shareInstance] stopCameraPreview];
}];
}
4. 錄制視頻
[[TXUGCRecord shareInstance] startRecord]; //開始錄制
[[TXUGCRecord shareInstance] stopRecord]; //結(jié)束錄制
5. 視頻預(yù)覽
#import "TXLiteAVSDK_UGC/TXVodPlayer.h"
//遵守協(xié)議 <TXVodPlayListener>
@interface YSPreViewVC ()<TXVodPlayListener>
{
TXVodPlayer *_txVodPlayer; //這個播放器一定要設(shè)置成全局變量,不然播放不了……
}
_txVodPlayer = [[TXVodPlayer alloc] init];
[_txVodPlayer setupVideoWidget:self.view insertIndex:0];
_txVodPlayer.vodDelegate = self;
[_txVodPlayer startPlay:_localVideoPath];
6. 未完待續(xù)……
升級SDK至5.0及以上(集成短視頻 licence)
1. 下載最新的SDK至本地,并替換掉工程中的舊版本SDK;
2. 去控制臺配置 licence 并將 TXUgcSDK.licence 下載至本地,添加到工程目錄;
3. 由于新版本SDK將發(fā)布視頻接口獨立出來,得去“TXUGCUploadDemo”里面將“upload”文件夾拷貝至工程目錄,并修改對應(yīng)的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; // 錄制生成的視頻首幀預(yù)覽圖路徑
5.在AppDelegate.m文件中設(shè)置LicenseUrl和Key:
#import <TXLiteAVSDK_UGC/TXUGCBase.h>
[TXUGCBase setLicenceURL:@"LicenseUrl" key:@"Key"];