先看看大神的解析
下面主要是介绍WebRTC自带的一个传输模块,实际应用中您可以根据自己的需求注册不同的传输模块。
其中:udp_socket_wrapper.h主要负责Socket相关操作,如Socket创建、启动、端口绑定、停止。
udp_socket2_windows.h主要负责windows平台上的Socket相关操作,与之对应的就是linux平台上的udp_socket_posix.h
udp_transport.h主要负责包的发送和接收,如果你想实现自己的数据包收发逻辑,可重写该类,如他里面的LoopBack方式就是通过重写该模块来实现的。
对客户端调用来说主要就是做四件事情:
1、设置音视频远端地址和端口(包括远端音视频的RTP、RTCP端口和本地接收音视频的RTP、RTCP端口)。
2、启动音视频数据的发送。
3、启动音视频数据的接收。
4、启动音视频数据的播放。
具体代码结构如下:
1 public void start() { 2 this.setRemoteIp(WebRTCClient.str_remote_ip);WebRTCClient.str_to); 3 if (audioEnabled) { 4 startVoE(); 5 } 6 if (receiveVideo || sendVideo) { 7 startViE(); 8 } 9 }
1 public void startVoE() { 2 check(!voeRunning, "VoE already started"); 3 check(voe.startListen(audioChannel) == 0, "Failed StartListen"); 4 check(voe.startPlayout(audioChannel) == 0, "VoE start playout failed"); 5 check(voe.startSend(audioChannel) == 0, "VoE start send failed"); 6 voeRunning = true; 7 }