/// <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(); }
// เริ่มทำการ 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(); }