private async void CreateWebRtcTransportButton_Click(object sender, RoutedEventArgs e) { try { var result = await connection.InvokeAsync <dynamic>("CreateWebRtcTransport", new CreateWebRtcTransportRequest { ForceTcp = false, Consuming = true, Producing = false, }); IntPtr param = Marshal.StringToHGlobalAnsi(result.ToString()); RtclientLib.CreateSendTransport(param); //Marshal.FreeHGlobal(param); result = await connection.InvokeAsync <dynamic>("CreateWebRtcTransport", new CreateWebRtcTransportRequest { ForceTcp = false, Consuming = false, Producing = true, }); RtclientLib.CreateRecvTransport(param); //RtclientLib.JoinRoom(); } catch (Exception ex) { messagesList.Items.Add(ex.ToString()); } }
private async void ProcessPeerHandled(object message) { try { var result = await connection.InvokeAsync <dynamic>("EnterRoom", Guid.Empty); this.Dispatcher.Invoke(() => { var newMessage = $"{result}"; messagesList.Items.Add(newMessage); }); result = await connection.InvokeAsync <dynamic>("GetRouterRtpCapabilities"); this.Dispatcher.Invoke(() => { var newMessage = $"{result}"; messagesList.Items.Add(newMessage); }); //load routertp IntPtr param = Marshal.StringToHGlobalUni(result.ToString()); RtclientLib.LoadRtpCapabilities(param); // result = await connection.InvokeAsync <dynamic>("CreateWebRtcTransport", new CreateWebRtcTransportRequest { ForceTcp = false, Consuming = false, Producing = true, }); param = Marshal.StringToHGlobalAnsi(result.ToString()); RtclientLib.CreateSendTransport(param); //connectwebrtctransport //Marshal.FreeHGlobal(param); result = await connection.InvokeAsync <dynamic>("CreateWebRtcTransport", new CreateWebRtcTransportRequest { ForceTcp = false, Consuming = true, Producing = false, }); param = Marshal.StringToHGlobalAnsi(result.ToString()); RtclientLib.CreateRecvTransport(param); RtclientLib.JoinRoom(new WindowInteropHelper(this).Handle); } catch (Exception ex) { messagesList.Items.Add(ex.ToString()); } }