背景就不介紹了,本文詳細介紹安卓webrtc流程。
1.先建立socket連接,建議對socket用接口進行封裝(指令比較多)。
2.一般視頻方案建議後臺採取類似房間的處理方式(單聊也這樣處理,對方正在通話或者不在線就由後臺通過socket返回相應狀態),這些是擴展功能,不詳細介紹,根據自己項目進項擴展(可以集成推送服務等)。
3.先已單人視頻爲例,進來視頻界面
初始化自己Surfaceview
local_surfaceview.init(rootEglBase.getEglBaseContext(), null);
local_surfaceview.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT);
local_surfaceview.setZOrderMediaOverlay(true);
local_surfaceview.setMirror(true);
初始化遠端SurfaceView
remote_surfaceview.init(rootEglBase.getEglBaseContext(), null);
remote_surfaceview.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_BALANCED);
remote_surfaceview.setMirror(true);
發送進入房間指令
後臺返回進入房間成功指令,指令包含房間內所有成員信息,
下一步 創建createConnectionFactory 初始化本地視頻流createLocalStream 創建所有連接 createPeerConnections
爲所有連接添加流 addStreams就是爲上一部的PeeConnection.addStream(localStream) 下一步爲所有連接創建offer PeeConnection.createOffer(mPeer, offerOrAnswerConstraint());