优惠&来自WebRTC

时间:2017-11-05 19:12:30

标签: ios webrtc p2p

在普通结构中,它跟随两个设备相互连接以进行通信。

是否可以连接相同的iOS设备以使用WebRTC服务器连接(转身,晕眩)。

到目前为止我做了什么。

  1. 初始化的RTCPeerConnectionFactory&设置对等连接

     [_peerConnection offerForConstraints:constraints
                       completionHandler:^(RTCSessionDescription *sdp,
                                           NSError *error) {
                           NSLog(@"My SDP is %@", sdp);
                           NSLog(@"My Error is %@", error);
    
                           remoteSDP = sdp;
    
                           [self setLocalLocalDescription:sdp];
                           [self setRemoteRemoteDescription:sdp];
    
                       }];
    
  2. 我收到了SDP,我设置了_peerConnection的setLocalDescription& _peerConnectionremote的setRemoteDescription

  3. 我从_peerConnectionremote准备了答案,我收到了SDP,我设置了_peerConnectionremote的setLocalDescription& _peerConnection的setRemoteDescription。

  4. 我在didGenerateIceCandidate中设置了Ice候选者,为

    if (peerConn == _peerConnection) {
        [_peerConnection addIceCandidate:candidate];
    }else if (peerConn == _peerConnectionremote) {
        [_peerConnectionremote addIceCandidate:candidate];
    }
    
  5. 我在

    中收到远程媒体流
    - (void)peerConnection:(RTCPeerConnection *)peerConn
          didAddStream:(RTCMediaStream *)stream , 
    
  6. 我设置得当。

    最后,它说,状态为RTCIceConnectionStateConnected,但没有更多的事情发生。

    1. 是否可以从iOS同时打开两个流,并通过WebRTC连接它们。

    2. 如果是,我该如何分开来源

      RTCMediaStream * stream1 = [_factory mediaStreamWithStreamId:@" ARDAMS"]; RTCMediaStream * stream2 = [_factoryremote mediaStreamWithStreamId:@" ARDAMS"];

    3. -----现在它甚至停止了第一个流。

      有任何建议或想法吗?

      关注此图片作为架构师,当一方是远程或其他设备时,这对我很好。但是当双方都跳过SIGNALING SERVER的设备相同时,它就会失败。

      enter image description here

1 个答案:

答案 0 :(得分:0)

是的,你可以这样做。在peerConnection:didAddStream:回调中添加媒体流时,您是否保留这些媒体流?您是否将视频曲目添加到RTCVideoRenderer?区分这两个源的方式是在调用peerConnection:didAddStream时与流关联的对等连接,类似于您对ICE候选者所做的事情