Example #1
0
        public void HandleMessage(RReadyCode message)
        {
            if (isOrder)//发起方
            {
                if (!message.isReady)
                {
                    ShowMsg("发起远程听诊失败(请确认对方已连接听诊器)");
                    Invoke(new MethodInvoker(() =>
                    {
                        btnPresss.Enabled = false;
                    }));
                }
                else
                {
                    ShowMsg("对方设备就绪,可以发起听诊了");

                    //ShowMsg("远程听诊进行中");
                    Invoke(new MethodInvoker(() =>
                    {
                        btnPresss.Enabled = true;
                    }));
                }
            }
            else
            {
                if (isConnect())
                {
                    Thread thread = new Thread(() =>
                    {
                        //Thread.Sleep(200);
                        SuperSocket.Send(new RStartAudioCode());
                        Current.StartAudioInput();
                        timer.Start();
                        Invoke(new MethodInvoker(() =>
                        {
                            gifBox1.StartAnimate();
                            //processBarEx1.Visible = true;
                        }));
                        //Thread.Sleep(200);
                        while (!isStop)
                        {
                            byte[] packet = new byte[128];
                            int bytesRead = Current.AudioInputStream.Read(packet, 0, packet.Length);
                            if (bytesRead <= 0)
                            {
                                Thread.Sleep(100);
                                continue;
                            }
                            var code = new RTransAudioCode();
                            memoryStream.Write(packet, 0, bytesRead);
                            code.Bytes = packet.Take(bytesRead).ToArray();
                            SuperSocket.Send(code);
                            Thread.Sleep(1);
                        }
                        Current.StopAudioInput();
                    });
                    thread.Start();
                }
                else
                {
                    SuperSocket.Send(new RReadyCode()
                    {
                        isReady = false
                    });
                }
            }
        }