/// <summary> /// 开始会议 /// </summary> public void Start() { //check Meeting.CheckNull(); Microphone.CheckNull(); recorderService.CheckNull(); //server[speech] server.SpeechStart(Setting); //recorder recorderService.Configruation((opt) => { opt.DeviceNum = Microphone.Key; opt.Rate = Setting.Rate; opt.BitDepth = Setting.BitDepth; opt.Channel = Setting.Channel; opt.BufferMilliseconds = Setting.BufferMilliseconds; opt.DataEvent = (sender, e) => { //server.MeetingSend(Meeting.Id, e.Buffer, 0, e.BytesRecorded); server.SpeechSend(new Plug.Speech.SpeechData() { Key = Meeting.Id, Data = e.Buffer, Offset = 0, Length = e.BytesRecorded, LastDt = DateTime.Now }); }; opt.VolumeEvent = (sender, e, volume) => { MicrophoneVolume = volume; if (PreVol != volume) { PreVolDt = DateTime.Now; } PreVol = volume; //Trace.WriteLine($"v:{volume} / {PreVolDt} {DateTime.Now - PreVolDt}"); }; opt.StopedEvent = (sender, e) => { Trace.WriteLine($"stop: {DateTime.Now}"); }; opt.FileName = MeetingHelper.GetMeetingWavFile(Meeting.Id); }); recorderService.Start(); //task SyncTask(); //sync SyncUI(EnumTaskStatus.Started); }