コード例 #1
0
        public void EndConnection()
        {
            //make sure we're not calling this multiple times
            if (this.CurrentState != SystemState.LoggedOut)
            {
                this.CurrentState = SystemState.LoggedOut;

                //reset UI after changing SystemState
                P2pWorker.ReportProgress(0, ThreadMessage.Create(UiMessage.ToggleUi, string.Empty));

                //close and set classes to null
                if (p2p != null)
                {
                    p2p.Close();
                    p2p = null;
                }

                if (videoHttpListener != null)
                {
                    videoHttpListener.Stop();
                    videoHttpListener.Quit();
                    videoHttpListener = null;
                }

                if (P2pWorker != null)
                {
                    P2pWorker.CancelAsync();
                }
            }
        }
コード例 #2
0
        void P2PLib_StreamChanged(object sender, StreamedChangedEventArgs e)
        {
            //take packet from server & use videoHttpListener to write to localhost
            videoHttpListener.StreamedChanged(e);

            //set client to listen to stream
            if (e.StreamedPacket.packetNumber == 0)
            {
                string file = StreamingHttpListener.SafeHttpString(e.StreamedPacket.fileName);
                string url  = String.Format(@"http://localhost:8088/{0}/video/{1}", userName, file);
                P2pWorker.ReportProgress(100, ThreadMessage.Create(UiMessage.StreamVideo, url));
            }
        }
コード例 #3
0
        private void SubscribeToPeerChannelEvents()
        {
            //hook up the events we care about...text and status for the server
            p2p.StatusChanged += new EventHandler <StatusChangedEventArgs>(P2PLib_StatusChanged);
            p2p.TextPeerChannelHelper.ChatChanged += new EventHandler <ChatChangedEventArgs>(P2PLib_ChatChanged);

            //only setup the listener in client mode
            if (!App.IsServerMode)
            {
                p2p.StreamedVideo.StreamChanged += new EventHandler <StreamedChangedEventArgs>(P2PLib_StreamChanged);
            }

            //required by server for start/send stream, used by client for StreamChanged event defined above)
            videoHttpListener = new StreamingHttpListener(userName + "/video/",
                                                          MediaFinished,
                                                          LogMessage,
                                                          p2p.StreamedVideo.StartStream,
                                                          p2p.StreamedVideo.SendStream);
        }