前面寫的一系列總結都是講webrtc如何下載下傳,編譯,開發的,有些人可能有點雲裡霧裡了,WEBRTC不是用來搞跨浏覽器開發的嗎,怎麼我講的這些跟浏覽器扯不上任何關系,其實看看下面這個架構圖,你就明白了(本系列文章轉載請說明出處:http://www.cnblogs.com/lingyunhu).
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SMzUjM5QmM2IWMxEzNjVWOiNWY2EDMyEWNwYWN4gjN48CX3EzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.png)
我前面講的這些内容都封裝在browser裡面了,如音視訊的采集,編碼,傳輸,回聲消除,丢包重傳.是以如果你想将這些功能內建到你的産品裡面就必須了解這些東西.
如果你隻想做基于浏覽器的視訊通話功能,上面這些你可以不了解,更不需要去下載下傳編譯WEBRTC代碼,因為實作這些功能所需要的JS接口浏覽器已經幫你實作了,你隻需要簡單調用即可,我們先看看實作下面這樣一個功能主要涉及哪些步驟?
1,信令互動:開始視訊通話前發起端和接收端需要一些互動,如通知對方開始視訊,接收視訊,視訊參數協商(SDP資訊),NAT位址交換,這個過程我們稱之為信令互動,WEBRTC沒有定義标準信令格式,既可以使用SIP也可以使用XMPP,還可以使用自定義的信令格式,最簡單的方式就是使用websocket或XMLHttpRequest,自定義格式完成信令互動過程.
2,擷取本地視訊流:navigator.getUserMedia(constraints, successCallback, errorCallback);
3,SDP協商:createOffer,createAnswer.
4,ICE協商:
5,使用RTCPeerConnection對象在浏覽器之間交換媒體流資料.
上面基本上就是浏覽器上視訊通話涉及的主要對象.
對應到手機端就是webrtc編譯成功後的appRTCDemo.apk.