여러 연결에 대해 서로 다른 로컬 스트림을 만들려고하면 다른 로컬 스트림을 시도 할 때마다 동일한 로컬 스트림을 여러 당사자 (파티 B 및 C)에 보내고 있다고 생각합니다. 가능하지 않은 마이크와 카메라에 다시 액세스 할 수 있습니다 (저는 믿습니다). 이 같은
당신은 작성해야 localstream 뭔가 :
stream = sessionFactory.createLocalMediaStream(LOCAL_MEDIA_ID);
파티-C을 위해 파티-B의 스트림을 전송하는 당신은이 작업을 수행 할 수 있습니다
처럼 보내고.
- 는 당신이 파티에 peerconnection1 있다고 가정하자 : 이것은 당신이 파티 B를 위해 파티-C에서 원격 스트림을 전송하기 위해 C.
함께 두 번째의 PeerConnection에서 localstream로 B에서 점점 스트림을 추가합니다 -비. C에서 원격 스트림을 로컬 스트림으로 추가하려면 먼저 현재 트랙을 제거한 다음 새 트랙을 추가해야합니다.
이를 위해 당신은 당신이 이제 스트림 remotestreamC에서 나오는 오디오 및 비디오 트랙을 낳게 될 것이다 B로 보내는 localstream의 내용을 변경합니다 이런 식으로이
AudioTrack t1 = mystream.audioTracks.get(0);
VideoTrack v1 = myStream.videoTracks.get(0);
if(myStream.removeTrack(t1)){
if(myStream.removeTrack(v1)){
t1 = remoteStreamC.audioTracks.get(0);
v1 = remoteStreamC.videoTracks.get(0);
myStream.addTrack(t1);
myStream.addTrack(v1);
}
}
과 같은 작업을 수행 할 수 있습니다 .
그러나이 프로세스 오류가 당신이 누군가가 연결을 중단 할 때 때문에 오류 처리를 사용해야합니다 무료로 만들기 (중 B 또는 C) 당신이 경우 당신이해야합니다 .... 널 트랙을 받고있을 것입니다 즉시 다른 사람에게 hangup 요청을 보냅니다.
왜 A와 B를 섞어서 C로 보내야합니까? B와 C가 직접 연결을 설정하지 않는 이유가 있습니까? – samgak
@samgak 의미, B와 C는 서로 직접 연결됩니까? 클라이언트 (A)가 Android 앱이고 B와의 2 피어 연결과 C 연결을 만든 경우 ... 클라이언트에서 제안한대로 B를 C에 직접 연결하는 것이 가능하지 않습니다. – EdGs
B와 C는 같은 앱으로 실행됩니까? 그렇지 않다면, 그들은 무엇입니까? – samgak