报价及;来自WebRTC中相同设备iOS的应答

报价及;来自WebRTC中相同设备iOS的应答,ios,webrtc,p2p,Ios,Webrtc,P2p,在正常结构中,它的两个设备相互连接以进行通信 是否可以使用WebRTC服务器(turn、stun)连接同一iOS设备以连接自身 到目前为止我做了什么 已初始化RTPeerConnectionFactory并设置对等连接 [_peerConnection offerForConstraints:constraints completionHandler:^(RTCSessionDescription *sdp,

在正常结构中,它的两个设备相互连接以进行通信

是否可以使用WebRTC服务器(turn、stun)连接同一iOS设备以连接自身

到目前为止我做了什么

  • 已初始化RTPeerConnectionFactory并设置对等连接

     [_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];
    
                       }];
    
  • 我收到了SDP,我设置了\u peerConnection的setLocalDescription和\u peerConnectionremote的setRemoteDescription的本地描述

  • 我从peerConnectionremote准备了答案,收到了SDP,我设置了peerConnectionremote的setLocalDescription和peerConnection的setRemoteDescription

  • 我在didGenerateIceCandidate中设置Ice候选人,如下所示

    if (peerConn == _peerConnection) {
        [_peerConnection addIceCandidate:candidate];
    }else if (peerConn == _peerConnectionremote) {
        [_peerConnectionremote addIceCandidate:candidate];
    }
    
  • 我在中接收远程媒体流

    - (void)peerConnection:(RTCPeerConnection *)peerConn
          didAddStream:(RTCMediaStream *)stream , 
    
  • 我设置得很好

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

  • 是否可能,两个服务器同时从iOS打开两个流,并通过WebRTC连接它们

  • 如果是,我如何分离来源

    RTCMediaStream*stream1=[[工厂媒体流与流:@“ARDAMS”]; RTCMediaStream*stream2=[\u factoryremote mediaStreamWithStreamId:@“ARDAMS”]

  • -----现在它甚至停止了第一流

    有什么建议或想法吗

    以下是作为架构师的图片,当一方是远程设备或其他设备时,我可以很好地使用它。但当双方都是同一个设备跳过信令服务器时,就会失败


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

    目前,我不关注两个流,而是发送本地视频并获取peerConnection:didAddStream并添加到远程。PC1 ice候选者添加到PC2,反之亦然。是的,我从didAddStream收到的曲目,我通过本地资源添加到,&也是PC1流。您是否保留远程媒体流?我用另一种方式解决了这个问题。谢谢。@VeerSuthar你是怎么修好的?我和WebRTC有同样的问题,你能分享你的解决方案吗?现在,我不关注两个流,我发送本地视频并获取peerConnection:didAddStream并添加到远程。PC1 ice候选者添加到PC2,反之亦然。是的,我从didAddStream收到的曲目,我通过本地资源添加到,&也是PC1流。您是否保留远程媒体流?我用另一种方式解决了这个问题。谢谢。@VeerSuthar你是怎么修好的?我和WebRTC有同样的问题,你能分享你的解决方案吗?