static void PCOnIceConnectionChange(IntPtr ptr, RTCIceConnectionState state) { WebRTC.Sync(ptr, () => { if (WebRTC.Table[ptr] is RTCPeerConnection connection) { connection.OnIceConnectionChange?.Invoke(state); } }); }
private void OnIceConnectionChange(RTCPeerConnection pc, RTCIceConnectionState state) { Debug.Log($"{GetName(pc)} IceConnectionState: {state}"); if (state == RTCIceConnectionState.Connected || state == RTCIceConnectionState.Completed) { StartCoroutine(CheckStats(pc)); foreach (var sender in _pc1.GetSenders()) { ChangeFramerate(sender, (uint)Application.targetFrameRate); } } }
void OnIceConnectionChange(string connectionId, RTCIceConnectionState state) { switch (state) { case RTCIceConnectionState.Connected: onConnect?.Invoke(connectionId); break; case RTCIceConnectionState.Disconnected: onDisconnect?.Invoke(connectionId); break; } }
private string StatusTextForState(RTCIceConnectionState state) { switch (state) { case RTCIceConnectionState.New: case RTCIceConnectionState.Checking: return("Connecting..."); case RTCIceConnectionState.Connected: case RTCIceConnectionState.Completed: case RTCIceConnectionState.Failed: case RTCIceConnectionState.Disconnected: case RTCIceConnectionState.Closed: case RTCIceConnectionState.Count: return(""); } return(""); }
private void OnIceConnectionChange(RTCIceConnectionState state) { switch (state) { case RTCIceConnectionState.New: DebugUtility.Log(LoggerTags.Online, "{0} IceConnectionState: New", host); break; case RTCIceConnectionState.Checking: DebugUtility.Log(LoggerTags.Online, "{0} IceConnectionState: Checking", host); break; case RTCIceConnectionState.Closed: DebugUtility.Log(LoggerTags.Online, "{0} IceConnectionState: Closed", host); break; case RTCIceConnectionState.Completed: DebugUtility.Log(LoggerTags.Online, "{0} IceConnectionState: Completed", host); break; case RTCIceConnectionState.Connected: DebugUtility.Log(LoggerTags.Online, "{0} IceConnectionState: Connected", host); break; case RTCIceConnectionState.Disconnected: DebugUtility.Log(LoggerTags.Online, "{0} IceConnectionState: Disconnected", host); break; case RTCIceConnectionState.Failed: DebugUtility.Log(LoggerTags.Online, "{0} IceConnectionState: Failed", host); break; case RTCIceConnectionState.Max: DebugUtility.Log(LoggerTags.Online, "{0} IceConnectionState: Max", host); break; default: break; } }
private void OnIceConnectionChange(RTCPeerConnection pc, RTCIceConnectionState state) { switch (state) { case RTCIceConnectionState.New: Debug.Log($"{GetName(pc)} IceConnectionState: New"); break; case RTCIceConnectionState.Checking: Debug.Log($"{GetName(pc)} IceConnectionState: Checking"); break; case RTCIceConnectionState.Closed: Debug.Log($"{GetName(pc)} IceConnectionState: Closed"); break; case RTCIceConnectionState.Completed: Debug.Log($"{GetName(pc)} IceConnectionState: Completed"); break; case RTCIceConnectionState.Connected: Debug.Log($"{GetName(pc)} IceConnectionState: Connected"); break; case RTCIceConnectionState.Disconnected: Debug.Log($"{GetName(pc)} IceConnectionState: Disconnected"); break; case RTCIceConnectionState.Failed: Debug.Log($"{GetName(pc)} IceConnectionState: Failed"); break; case RTCIceConnectionState.Max: Debug.Log($"{GetName(pc)} IceConnectionState: Max"); break; default: throw new ArgumentOutOfRangeException(nameof(state), state, null); } }
void OnIceConnectionChange(RTCPeerConnection pc, RTCIceConnectionState state) { switch (state) { case RTCIceConnectionState.New: Debug.Log($"{GetName(pc)} IceConnectionState: New"); break; case RTCIceConnectionState.Checking: Debug.Log($"{GetName(pc)} IceConnectionState: Checking"); break; case RTCIceConnectionState.Closed: Debug.Log($"{GetName(pc)} IceConnectionState: Closed"); break; case RTCIceConnectionState.Completed: Debug.Log($"{GetName(pc)} IceConnectionState: Completed"); break; case RTCIceConnectionState.Connected: Debug.Log($"{GetName(pc)} IceConnectionState: Connected"); break; case RTCIceConnectionState.Disconnected: Debug.Log($"{GetName(pc)} IceConnectionState: Disconnected"); break; case RTCIceConnectionState.Failed: Debug.Log($"{GetName(pc)} IceConnectionState: Failed"); break; case RTCIceConnectionState.Max: Debug.Log($"{GetName(pc)} IceConnectionState: Max"); break; default: break; } }
void Pc1OnIceConnectinChange(RTCIceConnectionState state) { OnIceConnectionChange(pc1, state); }
public override void DidChangeIceConnectionState(RTCPeerConnection peerConnection, RTCIceConnectionState newState) { _listener?.OnIceConnectionChange(newState.ToNet()); }
public void DidIceConnectionStateChanged(RTCIceConnectionState iceConnectionState) { System.Diagnostics.Debug.WriteLine($"{nameof(DidIceConnectionStateChanged)}"); }
static void IceConnectionChangeCallback(IntPtr userData, RTCIceConnectionState state) { var source = GCHandleHelper.FromIntPtr <PeerConnectionObserver>(userData); source?.IceConnectionStateChanged?.Invoke(source, new EventArgs <RTCIceConnectionState>(state)); }
private void OnIceConnectionChange(RTCIceConnectionState state) { Debug.Log($"IceConnection state changed to {state}"); }
public IEnumerator PeerConnectionStateChange() { RTCConfiguration config = default; config.iceServers = new[] { new RTCIceServer { urls = new[] { "stun:stun.l.google.com:19302" } } }; var peer1 = new RTCPeerConnection(ref config); var peer2 = new RTCPeerConnection(ref config); RTCPeerConnectionState state1 = default; RTCPeerConnectionState state2 = default; RTCIceConnectionState iceState1 = default; RTCIceConnectionState iceState2 = default; peer1.OnIceCandidate = candidate => { peer2.AddIceCandidate(candidate); }; peer2.OnIceCandidate = candidate => { peer1.AddIceCandidate(candidate); }; peer1.OnConnectionStateChange = state => { state1 = state; }; peer2.OnConnectionStateChange = state => { state2 = state; }; peer1.OnIceConnectionChange = state => { iceState1 = state; }; peer2.OnIceConnectionChange = state => { iceState2 = state; }; Assert.That(state1, Is.EqualTo(RTCPeerConnectionState.New)); Assert.That(state2, Is.EqualTo(RTCPeerConnectionState.New)); var obj = new GameObject("audio"); var source = obj.AddComponent <AudioSource>(); source.clip = AudioClip.Create("test", 480, 2, 48000, false); AudioStreamTrack track1 = new AudioStreamTrack(source); peer1.AddTrack(track1); var op1 = peer1.CreateOffer(); yield return(op1); var desc = op1.Desc; var op2 = peer1.SetLocalDescription(ref desc); yield return(op2); var op3 = peer2.SetRemoteDescription(ref desc); yield return(op3); var op4 = peer2.CreateAnswer(); yield return(op4); desc = op4.Desc; var op5 = peer2.SetLocalDescription(ref desc); yield return(op5); var op6 = peer1.SetRemoteDescription(ref desc); yield return(op6); var op7 = new WaitUntilWithTimeout(() => state1 == RTCPeerConnectionState.Connected && state2 == RTCPeerConnectionState.Connected, 5000); yield return(op7); Assert.That(op7.IsCompleted, Is.True); var op8 = new WaitUntilWithTimeout(() => (iceState1 == RTCIceConnectionState.Connected || iceState1 == RTCIceConnectionState.Completed) && (iceState2 == RTCIceConnectionState.Connected || iceState2 == RTCIceConnectionState.Completed) , 5000); yield return(op8); Assert.That(op8.IsCompleted, Is.True); peer1.Close(); var op9 = new WaitUntilWithTimeout(() => state1 == RTCPeerConnectionState.Closed && iceState2 == RTCIceConnectionState.Disconnected, 5000); yield return(op9); Assert.That(op9.IsCompleted, Is.True); track1.Dispose(); peer2.Close(); Object.DestroyImmediate(source.clip); Object.DestroyImmediate(obj); }
public static IceConnectionState ToNet(this RTCIceConnectionState self) { return((IceConnectionState)self); }
void Pc2OnIceConnectionChange(RTCIceConnectionState state) { OnIceConnectionChange(pc2, state); }
public void DidChangeConnectionState(RTCIceConnectionState state) { Console.WriteLine("ICE state changed:{0}", state); _videoCallView.StatusLabel.Text = StatusTextForState(state); }
public void DidChangeIceConnectionState(RTCPeerConnection peerConnection, RTCIceConnectionState newState) { Console.WriteLine("ICE state changed: {0} ({1})", newState, (int)newState); DispatchQueue.MainQueue.DispatchAsync(() => Delegate?.DidChangeConnectionState(newState)); }
public void DidChangeConnectionState(RTCIceConnectionState state) { Console.WriteLine("ICE state changed: {0} ({1})", state, (int)state); }
public static IceConnectionState ToNativePort(this RTCIceConnectionState platformNative) => (IceConnectionState)platformNative;
public IEnumerator PeerConnectionStateChange() { RTCConfiguration config = default; config.iceServers = new[] { new RTCIceServer { urls = new[] { "stun:stun.l.google.com:19302" } } }; var peer1 = new RTCPeerConnection(ref config); var peer2 = new RTCPeerConnection(ref config); RTCPeerConnectionState state1 = default; RTCPeerConnectionState state2 = default; RTCIceConnectionState iceState1 = default; RTCIceConnectionState iceState2 = default; peer1.OnIceCandidate = candidate => { peer2.AddIceCandidate(candidate); }; peer2.OnIceCandidate = candidate => { peer1.AddIceCandidate(candidate); }; peer1.OnConnectionStateChange = state => { state1 = state; }; peer2.OnConnectionStateChange = state => { state2 = state; }; peer1.OnIceConnectionChange = state => { iceState1 = state; }; peer2.OnIceConnectionChange = state => { iceState2 = state; }; Assert.That(state1, Is.EqualTo(RTCPeerConnectionState.New)); Assert.That(state2, Is.EqualTo(RTCPeerConnectionState.New)); MediaStream stream = Audio.CaptureStream(); peer1.AddTrack(stream.GetTracks().First()); var op1 = peer1.CreateOffer(); yield return(op1); var desc = op1.Desc; var op2 = peer1.SetLocalDescription(ref desc); yield return(op2); var op3 = peer2.SetRemoteDescription(ref desc); yield return(op3); var op4 = peer2.CreateAnswer(); yield return(op4); desc = op4.Desc; var op5 = peer2.SetLocalDescription(ref desc); yield return(op5); var op6 = peer1.SetRemoteDescription(ref desc); yield return(op6); var op7 = new WaitUntilWithTimeout(() => state1 == RTCPeerConnectionState.Connected && state2 == RTCPeerConnectionState.Connected, 5000); yield return(op7); Assert.That(op7.IsCompleted, Is.True); var op8 = new WaitUntilWithTimeout(() => (iceState1 == RTCIceConnectionState.Connected || iceState1 == RTCIceConnectionState.Completed) && (iceState2 == RTCIceConnectionState.Connected || iceState2 == RTCIceConnectionState.Completed) , 5000); yield return(op8); Assert.That(op8.IsCompleted, Is.True); peer1.Close(); var op9 = new WaitUntilWithTimeout(() => state1 == RTCPeerConnectionState.Closed && iceState2 == RTCIceConnectionState.Disconnected, 5000); yield return(op9); Assert.That(op9.IsCompleted, Is.True); stream.Dispose(); peer2.Close(); }