【iOS開發(fā)】拓幻美顏對接進(jìn)騰訊云直播過程以及問題

工作需要, 將騰訊云自帶的美顏設(shè)置 替換為 拓幻美顏薇缅, 記錄下遇到的一個(gè)問題。

拓幻美顏?zhàn)鳛橐粋€(gè)第三方美顏sdk晌端, 功能比較多捅暴, 對接過程也很方便,直接開整:

  • 申請拓幻的appkey

TISDK的初始化是需要一個(gè)key來進(jìn)行鑒權(quán)咧纠, 自己去申請蓬痒。

  • 下載配置SDK

最新SDK下載地址:TiSDK_iOS

下載完成后,確認(rèn)TiSDK_iOS 包含:TiSDK.framework漆羔、TiLiveUI 文件夾(可選)梧奢、 TiSDKResource.bundle

將整個(gè)TiSDK_iOS文件夾導(dǎo)入自己的工程中, 如果工程中已經(jīng)添加Masonry, SSZipArchive演痒,將TiUITool 目錄下的Masonry.framework亲轨、ZipArchive. framework 刪除,避免沖突;

添加依賴庫AssetsLibrary.framework鸟顺、libc++.tbd;

動(dòng)態(tài)庫TiSDK.framework 選擇Embed 類型為:Embed & Sign

  • 初始化SDK

TiSDK 初始化函數(shù)程序中調(diào)用一次即可生效惦蚊,建議在 Application 創(chuàng)建的時(shí)候調(diào)用; 如果渲染功能使用不頻繁器虾,也可以在使用的時(shí)候調(diào)用:

導(dǎo)入頭文件:#import <TiSDK/TiSDK.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        NSString* key = kTuoHuanKey;
        [TiSDK init:key CallBack:^(InitStatus callBack) {
            if (callBack.code == 100) {
                  // 初始化成功,可自由處理一些需要的邏輯
            }
        }];
}
  • 對接TiLiveUI

導(dǎo)入頭文件:#import "TiUIManager.h"

加載UI:

- (void)viewDidLoad {
    [super viewDidLoad];

    // 這里的`TiUIManagerDelegate`可自由設(shè)置蹦锋, 如果需要另外處理點(diǎn)擊事件兆沙, 就實(shí)現(xiàn)此delegate, 一般用于使用默認(rèn)UI的時(shí)候
    [[TiUIManager shareManager] loadToWindowDelegate:nil];
}

在需要美顏設(shè)置的方法內(nèi)調(diào)起美顏UI:

 [[TiUIManager shareManager] showMainMenuView];

到這里, 拓幻的美顏設(shè)置UI已經(jīng)可以正常調(diào)起了莉掂, 那我設(shè)置了美顏之后要怎么把圖像上傳葛圃, 怎么把拓幻和騰訊云推流對接在一起呢?

騰訊云的直播推流TXLivePush支持自定義音視頻采集和渲染憎妙, 那么我們可以把經(jīng)過拓幻美顏的圖像進(jìn)行采集后二次處理库正,然后進(jìn)行推流。

這里用到TXLivePushvideoProcessDelegate代理:

 // self.livePushLisher 是TXLivePush生成的對象
self.livePushLisher.videoProcessDelegate = self;   

實(shí)現(xiàn)代理:

-(GLuint)onPreProcessTexture:(GLuint)texture width:(CGFloat)width height:(CGFloat)height {

  // OpenGL線程回調(diào)中厘唾, 調(diào)用拓幻的紋理渲染褥符,將渲染后的紋理傳給TXLivePush進(jìn)行推流
   return [[TiSDKManager shareManager] renderTexture2D:texture Width:width Height:height Rotation:CLOCKWISE_0 Mirror:self.livePushLisher.config.frontCamera];
}

在OpenGL線程中回調(diào),在這里可以進(jìn)行采集圖像的二次處理
@param texture 紋理ID
@param width 紋理的寬度
@param height 紋理的高度
@return 返回給SDK的紋理
說明:SDK回調(diào)出來的紋理類型是GL_TEXTURE_2D阅嘶,接口返回給SDK的紋理類型也必須是GL_TEXTURE_2D; 該回調(diào)在SDK美顏之后. 紋理格式為GL_RGBA

- (GLuint)onPreProcessTexture:(GLuint)texture width:(CGFloat)width height:(CGFloat)height;

到這里属瓣, 騰訊云直播對接拓幻, 就結(jié)束了讯柔。

但是在測試過程中抡蛙, 發(fā)現(xiàn)了一個(gè)bug, 當(dāng)app啟動(dòng)后魂迄, 第一次調(diào)起美顏UI界面時(shí)粗截,背景容器圖層為空, 界面顯示不正常:

通過對拓幻的UI部分源碼的解讀捣炬, 發(fā)現(xiàn)在TiUIManager中有美顏模塊的主要功能UI熊昌,也就是美顏UI的容器圖層tiUIViewBoxView, 這個(gè)視圖中有分類功能圖層classifyView湿酸,里面有一個(gè)方法:-(void)Judge_pro:(NSString *)key, 這個(gè)方法主要處理功能圖層上的UI顯示婿屹, 所以直接調(diào)用一下這個(gè)方法, 在showMainMenuView之前提現(xiàn)把所有的子控件都加載設(shè)置一遍:

  [[TiUIManager shareManager].tiUIViewBoxView.classifyView Judge_pro:@""];
  [[TiUIManager shareManager] showMainMenuView];

之后再次運(yùn)行推溃, 就正常顯示:

結(jié)束昂利!

如果對你有用就給個(gè)??吧~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市铁坎,隨后出現(xiàn)的幾起案子蜂奸,更是在濱河造成了極大的恐慌,老刑警劉巖硬萍,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扩所,死亡現(xiàn)場離奇詭異,居然都是意外死亡朴乖,警方通過查閱死者的電腦和手機(jī)祖屏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門助赞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赐劣,你說我怎么就攤上這事嫉拐×ǘ迹” “怎么了魁兼?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長漠嵌。 經(jīng)常有香客問我咐汞,道長,這世上最難降的妖魔是什么儒鹿? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任化撕,我火速辦了婚禮,結(jié)果婚禮上约炎,老公的妹妹穿的比我還像新娘植阴。我一直安慰自己,他們只是感情好圾浅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布掠手。 她就那樣靜靜地躺著,像睡著了一般狸捕。 火紅的嫁衣襯著肌膚如雪喷鸽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天灸拍,我揣著相機(jī)與錄音做祝,去河邊找鬼。 笑死鸡岗,一個(gè)胖子當(dāng)著我的面吹牛混槐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播轩性,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼声登,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了炮姨?” 一聲冷哼從身側(cè)響起捌刮,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舒岸,沒想到半個(gè)月后绅作,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛾派,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年俄认,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了个少。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,711評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡眯杏,死狀恐怖夜焦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岂贩,我是刑警寧澤茫经,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站萎津,受9級特大地震影響卸伞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锉屈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一荤傲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧颈渊,春花似錦遂黍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乌询,卻和暖如春榜贴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妹田。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工唬党, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鬼佣。 一個(gè)月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓驶拱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親晶衷。 傳聞我的和親對象是個(gè)殘疾皇子蓝纲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容