自從接手音視頻聊天開發(fā)的任務(wù),深感壓力,畢竟以前沒接觸過,幸好服務(wù)端的信令服務(wù)器有一個后端大神幫我搞,不用我太費(fèi)力,主要搞定Android端即可.
google提供的demo只能說相當(dāng)簡陋,只能實(shí)現(xiàn)單人視頻,剛開始不懂,用的是libjingle的13886版本(目前已經(jīng)更新到15000+版本,跟13886版本api有部分差異 新版本隱藏的很深, google了一段才發(fā)現(xiàn)),因?yàn)榛拘枨笠呀?jīng)快完成了,就暫時不考慮更換版本,后期可能會自己編譯源碼實(shí)現(xiàn)對其c++層的修改.
目前實(shí)現(xiàn)的功能:單人視頻.多人視頻(只測試到8個 ,沒有足夠手機(jī),人越多月容易斷線,這是接下去要解決的問題).
先說一個巨坑,開始在maven上找到的最新版本只更新到11139,于是就用了它就開始開發(fā),這個版本有個Bug當(dāng)多人視頻的時候誰退出誰就app崩潰,報(bào)so庫異常 mediastream 釋放 錯誤 ,而單人的不會,查遍了google 發(fā)現(xiàn)在新版本修復(fù)了這個問題,然而已經(jīng)開發(fā)了很多功能(點(diǎn)擊切換屏幕,小屏幕隨手指變換位置等),實(shí)在懶得換,這個問題一直困擾了我有1個星期,經(jīng)過n次測試終于解決,深夜來吐個槽,紀(jì)念下這幾個日夜:
在webrtcClient類中需要這樣寫才不會奔潰以及后續(xù)再視頻不會出問題:
/**
* 銷毀方法
*/
public void onDestroy() {
factory.stopAecDump();
for (Peer peer : peers.values()) {
peer.pc.close();
}
videoSource.stop();
client.off();//您需要打開睦疫,然后斷開甜奄,然后將其關(guān)閉。
client.disconnect();
client.close();
}
以后碰到坑再繼續(xù)分享 解決方法.