最近公司加了互動直播功能,用的是網(wǎng)易互動直播,期間所經(jīng)歷的一些坑,和大家分享一下
1.準(zhǔn)備分析
直播是im和視頻的推流和拉流一起完成,這些是依賴庫

這個是手動導(dǎo)入的sdk

MINSDk是網(wǎng)易im的一般版本,NIMAVChtat 是包含實(shí)時(shí)語音的版本,如果只是繼承直播 第一個就可以了 ,互動連麥直播 就需要2個.

這2個文件夾 是網(wǎng)易封裝的ijk播放器和直播需要的文件 也需要導(dǎo)入.
2關(guān)于沖突
如果你的項(xiàng)目里面用到了ijk就需要把他刪除掉,GUPImage也是,這2個都會引發(fā)文件.
3登陸
互動直播依賴于im,需要登陸才能進(jìn)行

分別是注冊,是指日志 數(shù)據(jù)存放位置,有默認(rèn)存放位置,配置代理,和登陸,error==nill代表登陸成功
4創(chuàng)建聊天室
想要聊天必須創(chuàng)建聊天室

創(chuàng)建聊天室,創(chuàng)建聊天進(jìn)入請求,進(jìn)去,error==nil 進(jìn)入成功,彈出對應(yīng)界面.
5創(chuàng)建會議
什么是會議,互動直播就是直播別人會議,你們在開會,觀眾再看,就這么簡單.
進(jìn)入界面的時(shí)候要看到攝像頭獲取的界面,流程是, 開啟video,預(yù)定會議,加入會議
開啟video

然后實(shí)現(xiàn)
[[NIMAVChatSDK sharedSDK].netCallManager addDelegate:self];
- (void)onLocalDisplayviewReady:(UIView *)displayView;在代理方法就能拿到畫面了
這里面拿的view沒有frame,你要給他一個frame

美顏效果也是家在這里面實(shí)現(xiàn)的(官方美顏),如果需要自定義的美顏,需要在

需要在[[NIMAVChatSDK sharedSDK].netCallManager sendVideoSampleBuffer:sampleBuffer];前面,渲染好再發(fā)給出去;
下面預(yù)定會議和加入會議
創(chuàng)建會議

主播和連麥著必須 actor=yes,否則無法推流

主要說一下這3個

第一個是推流,直播和連麥著都需要設(shè)置,第二個是推流地址,只要主播設(shè)置,第三個是用戶看到的展示類型,

這個樣子比人拿到地址 就可以看到你的畫面了
連麥者加入會議,和離開會議,主播也是這個方法離開會議,

那么如何看到連麥人的畫面那

這個代理就可以拿到y(tǒng)uvData,然后用opengl渲染出來,不會opengl沒關(guān)系,我也只會法線,光線和紋理這些,

直接拿來用就可以,到此位置,就已經(jīng)現(xiàn)實(shí)了連麥功能,這個2個拿到視頻的文件的代理,展示樣式是可以自己隨意擺放的,不應(yīng)想用戶那邊的觀看,用戶的觀看模式可以自定義,也可以在option中設(shè)置,但是要在開播之前就選定樣式,其他就是個自的業(yè)務(wù)邏輯問題了,網(wǎng)易直播的ui 不要集成,否則自己去體會.
ok就寫到這里