天天看點

Android IOS WebRTC 音視訊開發總結(七)

前面寫的一系列總結都是講webrtc如何下載下傳,編譯,開發的,有些人可能有點雲裡霧裡了,WEBRTC不是用來搞跨浏覽器開發的嗎,怎麼我講的這些跟浏覽器扯不上任何關系,其實看看下面這個架構圖,你就明白了(本系列文章轉載請說明出處:http://www.cnblogs.com/lingyunhu).

Android IOS WebRTC 音視訊開發總結(七)

我前面講的這些内容都封裝在browser裡面了,如音視訊的采集,編碼,傳輸,回聲消除,丢包重傳.是以如果你想将這些功能內建到你的産品裡面就必須了解這些東西.

如果你隻想做基于浏覽器的視訊通話功能,上面這些你可以不了解,更不需要去下載下傳編譯WEBRTC代碼,因為實作這些功能所需要的JS接口浏覽器已經幫你實作了,你隻需要簡單調用即可,我們先看看實作下面這樣一個功能主要涉及哪些步驟?

Android IOS WebRTC 音視訊開發總結(七)

1,信令互動:開始視訊通話前發起端和接收端需要一些互動,如通知對方開始視訊,接收視訊,視訊參數協商(SDP資訊),NAT位址交換,這個過程我們稱之為信令互動,WEBRTC沒有定義标準信令格式,既可以使用SIP也可以使用XMPP,還可以使用自定義的信令格式,最簡單的方式就是使用websocket或XMLHttpRequest,自定義格式完成信令互動過程.

2,擷取本地視訊流:navigator.getUserMedia(constraints, successCallback, errorCallback);

Android IOS WebRTC 音視訊開發總結(七)
Android IOS WebRTC 音視訊開發總結(七)

3,SDP協商:createOffer,createAnswer.

Android IOS WebRTC 音視訊開發總結(七)
Android IOS WebRTC 音視訊開發總結(七)

4,ICE協商:

Android IOS WebRTC 音視訊開發總結(七)
Android IOS WebRTC 音視訊開發總結(七)

5,使用RTCPeerConnection對象在浏覽器之間交換媒體流資料.

Android IOS WebRTC 音視訊開發總結(七)
Android IOS WebRTC 音視訊開發總結(七)
Android IOS WebRTC 音視訊開發總結(七)

上面基本上就是浏覽器上視訊通話涉及的主要對象.

對應到手機端就是webrtc編譯成功後的appRTCDemo.apk.