示例#1
0
        static void Main(string[] args)
        {
            // Client

            for (var i = 0; i < WaveIn.DeviceCount; i++)
            {
                Console.WriteLine(WaveIn.GetCapabilities(i).ProductName);
            }

            var ip     = new IPEndPoint(IPAddress.Parse("18.185.114.115"), 5555);
            var sender = new Sender(ip);

            var audioSender   = new NetworkAudioSender(0, sender);
            var audioReceiver = new NetworkAudioPlayer(sender);



            while (true)
            {
                var input = Console.ReadLine();
                if (input == "q")
                {
                    break;
                }
                else if (input != null)
                {
                    sender.Send(Encoding.UTF8.GetBytes(input));
                }
            }
            audioReceiver.Dispose();
            audioSender.Dispose();
            sender.Dispose();


            // Server

            /*
             * var server = new UDPServer(5555);
             *
             * while (true)
             * {
             *  if (Console.ReadLine() == "q") break;
             * }
             * server.Dispose();
             */
        }
 private void Receive()
 {
     AudioReceiver      = new UdpAudioReceiver(IpAddress);
     NetworkAudioPlayer = new NetworkAudioPlayer(new ALawChatCodec(), AudioReceiver);
 }
示例#3
0
        private void listenEvents()
        {
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                connected = true;
            });

            socket.On(Socket.EVENT_DISCONNECT, () =>
            {
                disconnect();
            });

            socket.On("stop streaming", (data) =>
            {
                var map  = Utils.GetMapFromData(data);
                var stop = Convert.ToBoolean(map["stop"]);
                if (stop)
                {
                    btnLive.BackColor = Color.Gray;
                }
            });

            socket.On("login", (data) =>
            {
                var map        = Utils.GetMapFromData(data);
                lblNumber.Text = Convert.ToInt32(map["numUsers"]).ToString() + " players";
                var message    = map["message"].ToString();
                if (message == "success")
                {
                    lbNotifications.Items.Add("You joined <3");
                    var reciever    = new SocketIoAudioReceiver(socket);
                    player          = new NetworkAudioPlayer(codec, reciever);
                    btnConnect.Text = "Disconnect";
                    enterName.Close();
                    btnChat.Enabled = true;
                    lblName.Text    = "Player: " + user.Name;
                }
                else
                {
                    lbNotifications.Items.Add(message);
                }
            });

            socket.On("mc connected", (data) =>
            {
                var map = Utils.GetMapFromData(data);
                game    = Game.FromJson(map["game"].ToString());
                lbNotifications.Items.Add(String.Format("😁 MC {0} joined", game.User.Name));
                lblAward.Text = String.Format("$ {0}", game.Award);
            });

            socket.On("mc disconnected", (data) =>
            {
                var map = Utils.GetMapFromData(data);
                var mc  = User.FromJson(map["user"].ToString());
                lbNotifications.Items.Add(String.Format("😂 MC {0} left", mc.Name));
            });

            socket.On("next question", (data) =>
            {
                lbNumberCorrectWrong.Text = "";
                var map           = Utils.GetMapFromData(data);
                Question question = Question.FromJson(map["question"].ToString());
                // speakQuestion(question);
                loadQuestions(question);
                int.TryParse(map["countDown"].ToString(), out seconds);
                int numberQuestion;
                int.TryParse(map["index"].ToString(), out numberQuestion);
                numberQuestion++;
                lblNumberQuestion.Text = "Question " + numberQuestion.ToString() + " ";
                timerCountDown         = new Thread(countDowner);
                timerCountDown.Start();
                showQuestion();
                resetColorButtons();
                enableButtons();
            });

            socket.On("continue players", (data) =>
            {
                var map = Utils.GetMapFromData(data);
                int continuePlayers;
                int stopsPlayers;
                int.TryParse(map["continue"].ToString(), out continuePlayers);
                int.TryParse(map["stop"].ToString(), out stopsPlayers);
                lbNotifications.Items.Add(String.Format("Number of players continued: {0}", continuePlayers));
                lbNotifications.Items.Add(String.Format("Number of players stopped: {0}", stopsPlayers));
            });

            socket.On("new game", (data) =>
            {
                lbCountDown.Text          = "";
                lblCorrect.Text           = "";
                lblNumberQuestion.Text    = "";
                lblQuestion.Text          = "";
                lbNumberCorrectWrong.Text = "";
                user.NumberCorrect        = 0;
                hideQuestion();
            });

            socket.On("user joined", (data) =>
            {
                var map        = Utils.GetMapFromData(data);
                lblNumber.Text = Convert.ToInt32(map["numUsers"]).ToString() + " players";
                var user       = User.FromJson(map["user"].ToString());
                lbNotifications.Items.Add(user.Name + " Joined");
            });

            socket.On("user left", (data) =>
            {
                var map        = Utils.GetMapFromData(data);
                lblNumber.Text = Convert.ToInt32(map["numUsers"]).ToString() + " players";
                var user       = User.FromJson(map["user"].ToString());
                lbNotifications.Items.Add(user.Name + " left");
            });

            socket.On("correct answer", (data) =>
            {
                var map           = Utils.GetMapFromData(data);
                var correctAnswer = map["answer"].ToString();
                disableButtons();
                showCorrectAnswer(correctAnswer);
                if (correctAnswer == answer.Id)
                {
                    lblQuestion.Text = lblQuestion.Text + "\n👌 Yes! Right answer";
                }
                else
                {
                    lblQuestion.Text = lblQuestion.Text + "\n😥 Nope! Wrong answer";
                }
            });


            socket.On("new message", (data) =>
            {
                var map     = Utils.GetMapFromData(data);
                var message = MyMessage.FromJson(map["message"].ToString());
                lbNotifications.Items.Add(message.UserName + ": " + message.Content);
            });

            socket.On("live video", (data) =>
            {
                var map   = Utils.GetMapFromData(data);
                imageLive = ImageLive.FromJson(map["image"].ToString());

                if (imageLive != null && imageLive.Img1D != null)
                {
                    btnLive.BackColor = Color.Red;
                    pLive.Refresh();
                    pLive.Image = IImage.ImageFromStream(imageLive.Img1D);
                }
            });


            socket.On("tops", (data) =>
            {
                var map           = Utils.GetMapFromData(data);
                var tops          = JsonConvert.DeserializeObject <List <User> >(map["tops"].ToString());
                var question      = Question.FromJson(map["question"].ToString());
                int i             = 1;
                int numCorrectAll = 1;
                int numWrongAll   = 1;
                int.TryParse(map["numberCorrect"].ToString(), out numCorrectAll);
                int.TryParse(map["numberWrong"].ToString(), out numWrongAll);
                lbNumberCorrectWrong.Text = String.Format("\nNumber correct: {0}\nNumber wrong: {1}", numCorrectAll, numWrongAll);

                tops.ForEach((value) =>
                {
                    var str = String.Format("Top {0}: {1} Correct {2}", i++, value.Name, value.NumberCorrect);
                    lbNotifications.Items.Add(str);
                    if (value.Name == user.Name)
                    {
                        user            = value;
                        lblCorrect.Text = String.Format("Correct: {0}", user.NumberCorrect);
                    }
                });
            });

            socket.On("congratulations", (data) =>
            {
                var map      = Utils.GetMapFromData(data);
                double bonus = 0;
                double.TryParse(map["bonus"].ToString(), out bonus);

                frmCongrats frmCongrats   = new frmCongrats(user.Name, user.NumberCorrect, bonus);
                frmCongrats.StartPosition = FormStartPosition.CenterParent;
                frmCongrats.ShowDialog();
            });
        }