因?yàn)轫?xiàng)目要實(shí)現(xiàn)音視頻對話功能班套,所以采用了百度的音視頻RTC慕蔚,集成入口
集成iOS SDK
官方demo入口
以上都沒什么好說的输吏,集成很簡單,實(shí)現(xiàn)視頻通話也很簡單,最主要的就是介紹一下我在開發(fā)中遇到的幾個大坑吧
1嗅战、集成BaiduRtcRoomApi之后,在iPhone 12手機(jī)(16.6系統(tǒng))上無法真機(jī)調(diào)試俺亮,出現(xiàn)Unable to install xxx
的錯誤驮捍,錯誤信息:The code signature version is no longer supported.
,解決方案
在target -> General里面找到Frameworks
如圖
把紅框部分都改成Do Not Embed脚曾,然后再次運(yùn)行就好了
2东且、千萬要記住,在開發(fā)過程中本讥,如果要測試珊泳,先用兩個蘋果手機(jī)互相撥打視頻測試,不要用一個安卓手機(jī)和一個蘋果手機(jī)測試拷沸,這個坑坑了我半天時間色查。
bug場景:安卓手機(jī)和蘋果手機(jī)互相撥打視頻通話,安卓手機(jī)能看到蘋果手機(jī)這邊的視頻畫面撞芍,但是蘋果手機(jī)看不到安卓手機(jī)的視頻畫面秧了,打印日志,發(fā)現(xiàn)當(dāng)安卓那邊加入房間的時候序无,RTC_REMOTE_STREAMING_STATES_SUBSCRIBE_SUCESS
這個狀態(tài)并沒有調(diào)用验毡,最開始我一直以為自己的原因,后來問了他們技術(shù)人員(因?yàn)榛ㄥX了帝嗡,所以有技術(shù)支持)才知道晶通,是安卓那邊的SDK里面enablePruneSignal這個參數(shù)默認(rèn)是true,手動設(shè)置為false就好了哟玷,
原因:android 現(xiàn)在還不支持 V4 和 V2互通录择,這個參數(shù)為true,就是默認(rèn)V4碗降。
據(jù)說現(xiàn)在安卓新版本的sdk這個參數(shù)默認(rèn)是false了隘竭。
3、在開發(fā)調(diào)試過程中讼渊,初始化本地用戶顯示視圖动看,在iPhone 7Plus手機(jī)上能全屏顯示,但是在iPhone 12上顯示不全爪幻,原因是沒有設(shè)置AVLayerVideoGravityResizeAspectFill
這個參數(shù)菱皆,設(shè)置一下就好了
//初始化本地用戶顯示視圖
RTCLocalVideoView *localView = [[RTCLocalVideoView alloc] initWithDelegate:self];
localView.videoView.frame = CGRectMake(0, 0, ScreenWidth, ScreenHeight);
localView.videoView.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.videoView addSubview:localView.videoView];
//設(shè)置本地視頻顯示view
[self.rtcRoomApi setLocalDisplay:localView];
4须误、如果兩個iPhone手機(jī)直接無法看到對方的視頻畫面,那就可能是手機(jī)攝像頭權(quán)限沒有打開仇轻,去設(shè)置里面京痢,重新關(guān)閉打開一下(我是遇到這樣的問題了,12能看到7p的畫面篷店,7p看不到12的畫面祭椰,但是7p手機(jī)上的攝像頭權(quán)限也是開啟的狀態(tài),關(guān)了重新開啟就好了)
剩下的沒啥了疲陕,到此就基本上開發(fā)完了方淤,等后續(xù)測試吧,如果有新的坑蹄殃,再續(xù)更吧P!