Пример #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 StartConference()
        {
            // 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
            Receiver = new FM.IceLink.Conference("172.18.6.226", 8888, new Stream[]
            {
                audioStream_Receiver,
                videoStream_Receiver
            });

            //**** Event การทำงาน Conference ****//
            Receiver.OnLinkInit += Receiver_OnLinkInit;
            Receiver.OnLinkUp   += Receiver_OnLinkUp;
            Receiver.OnLinkDown += Receiver_OnLinkDown;

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

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

            //**** Event การทำงาน Conference ****//
            // In-memory signalling.
            Receiver.OnLinkOfferAnswer += Receiver_OnLinkOfferAnswer;
            Receiver.OnLinkCandidate   += Receiver_OnLinkCandidate;

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