예제 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="OpusCodec"/> class.
        /// </summary>
        /// <param name="acousticEchoCanceller">The acoustic echo canceller.</param>
        public OpusCodec(OpusEchoCanceller echoCanceller)
            : base(20)
        {
            EchoCanceller           = echoCanceller;
            DisableFEC              = false;
            PercentLossToTriggerFEC = 5;

            _Padep = new BasicAudioPadep();
        }
예제 #2
0
        // เริ่มทำการ Conference
        private void StartSenderConference()
        {
            // Create a new IceLink conference
            // สามารถศึกษา Conference ได้จากลิงค์ http://docs.frozenmountain.com/icelink2/#class=IceLink.DotNet45.FM.IceLink.Conference
            // Conference parameter : serverAddress : System.String , serverPort : System.Int32 , stream : FM.IceLink.Stream
            Sender = new FM.IceLink.Conference("172.18.6.226", 8888, new Stream[]
            {
                audioStream_sender,
                videoStream_sender
            });

            //**** Event การทำงาน Conference ****//
            Sender.OnLinkInit += Sender_OnLinkInit;
            Sender.OnLinkUp   += Sender_OnLinkUp;
            Sender.OnLinkDown += Sender_OnLinkDown;

            // Stop automatically when the application closes.
            // หยุด Conference เมื่อมีการปิดโปรแกรม
            Closing += (ss, e) =>
            {
                // Stop localMedia ที่กำลังใช้งาน
                LocalMediaSender.Stop();

                if (Sender != null)
                {
                    // ยกเลิก Link ทั้งหมดในการทำ Conference
                    Sender.UnlinkAll();
                }
            };

            //**** Event การทำงาน Conference ****//
            // In-memory signalling.
            Sender.OnLinkOfferAnswer += Sender_OnLinkOfferAnswer;
            Sender.OnLinkCandidate   += Sender_OnLinkCandidate;

            // Start echo canceller
            OpusEchoCanceller = new OpusEchoCanceller(OpusClockRate, OpusChannels);
            OpusEchoCanceller.Start();

            // สร้าง Link ในการสนทนาโดยกำหนด peerID ในส่วนนี้จะสร้าง offer/answer P2P link
            // ดู Flow การทำงานได้จากลิงค์ http://docs.frozenmountain.com/icelink2/#class=icelink-diagrams-signalling
            Sender.Link(peerID_link);
        }