2017-11-05 1 views
1

정상 구조에서는 이어지는 두 기기가 서로 통신하도록 연결됩니다.WebRTC의 동일한 기기 iOS의 쿠폰 및 답변

WebRTC 서버 (turn, stun)를 사용하여 동일한 iOS 장비를 연결하여 자체 연결이 가능합니까?

내가 지금까지 한 일.

  1. 초기화 된 RTCPeerConnectionFactory 내가 _peerConnectionremote에서 대답을 준비

  2. _peerConnection의 setLocalDescription & _peerConnectionremote의 setRemoteDescription의 현지 설명을 설정하고, 내가받은

    [_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]; 
    
            }]; 
    
  3. 내가 SDP를받은 & 설정 피어 연결 SDP, 내가 설정 한 _peerConnectionremote의 setLocalDescription & _peerConnection의 setRemoteDescription.

  4. 는 내가 제대로 설정
    - (void)peerConnection:(RTCPeerConnection *)peerConn 
         didAddStream:(RTCMediaStream *)stream , 
    

if (peerConn == _peerConnection) { 
    [_peerConnection addIceCandidate:candidate]; 
}else if (peerConn == _peerConnectionremote) { 
    [_peerConnectionremote addIceCandidate:candidate]; 
} 
  • 내가 원격 미디어 스트림을 수신으로, didGenerateIceCandidate에 얼음 후보를 설정합니다.

    마지막으로 RTCIceConnectionStateConnected로 상태를 표시하지만 아무런 변화가 없습니다.

    1. iOS에서 동시에 두 개의 스트림을 열고 WebRTC를 통해 연결할 수 있습니까?

    2. 예, 어떻게 소스를 분리 할 수있는 경우

      RTCMediaStream * 스트림 1 = [mediaStreamWithStreamId _factory "ARDAMS"@] RTCMediaStream * stream2 = [_factoryremote mediaStreamWithStreamId : @ "ARDAMS"];

    ----- 이제는 첫 번째 스트림을 중지합니다.

    의견이나 제안이 있으십니까?

    다음 이미지는 건축가로서 하나의 파티가 원격 또는 다른 장치 인 날 잘 작동합니다. 그러나 양 당사자가 SIGNALING SERVER를 건너 뛰는 동일한 장치 일 경우, 실패합니다.

    enter image description here

  • 답변

    0

    예는이 작업을 수행 할 수 있습니다. peerConnection:didAddStream: 콜백에 미디어 스트림이 추가되면 미디어 스트림을 유지 하시겠습니까? RTCVideoRenderer에 비디오 트랙을 추가 하시겠습니까? 두 소스를 구별하는 방법은 peerConnection:didAddStream이 호출 될 때 스트림과 연결된 피어 연결을 사용하는 것입니다. ICE 후보자와 비슷합니다.

    +0

    현재 두 스트림에 초점을 맞추고 있지는 않습니다. 현지 비디오를 보내고 있습니다. peerConnection : didAddStream을 얻고 리모컨에 추가합니다. PC1 PC2에 대한 얼음 후보 및 그 반대의 경우도 추가하고 있습니다. 예, didAddStream에서받은 트랙, 로컬 네트워크에 추가 된 & PC1 스트림. –

    +0

    원격 미디어 스트림을 유지 하시겠습니까? –

    +0

    다른 방법으로 문제를 해결했습니다. 감사. –

    관련 문제