背景就不介绍了,本文详细介绍安卓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());