void UDP_AUDIO_Conference_Server_evRecBuf(byte[] bByf) { UPD_Message sb = UPD_Message.FromByte(bByf); if (sb.From == Room) return; if (sb.To.Contains(Room) == false && sb.From != "server") return; var AudioSample = VoiceCapturedEventArgs.Deserialise(sb.Data.Clone() as byte[]); GC.Collect(); if (sb.From == ServerName) { if (!IsIpAudioRecived) return; } lock (this) { this.MainDispatcher.BeginInvoke( DispatcherPriority.Normal, (ThreadStart)delegate() { if (sb.From != null) { string str = sb.To.Aggregate("", (current, var) => current + (var + " ")); //TestInfo2 = "thisR =" + Room + " audio R:" + From + " To " + str; } else { // TestInfo2 = ""; } }); if (bFlagMixVoice) { bool bFlag = false; foreach (ClassMultiAudio t in lst_bufSampAudio.Where(t => t.from == sb.From)) { if (t.IndexMessage > AudioSample.IndexMessage) { continue; } t.DtRec = DateTime.Now; t.IndexMessage = AudioSample.IndexMessage; t.AudioStream.Write(AudioSample.Source, 0, AudioSample.Source.Length); bFlag = true; } if (bFlag == false) { var cl = new ClassMultiAudio() { from = sb.From, IndexMessage = AudioSample.IndexMessage, DtRec = DateTime.Now }; cl.AudioStream.Write(AudioSample.Source, 0, AudioSample.Source.Length); lst_bufSampAudio.Add(cl); } } else mFifo.Write(AudioSample.Source, 0, AudioSample.Source.Length); RecByte += AudioSample.Source.Length; } //throw new NotImplementedException(); }
void UDP_AUDIO_Server_evRecBuf(byte[] bByf) { GC.Collect(); var AudioSample = VoiceCapturedEventArgs.Deserialise(bByf.Clone() as byte[]); lock (lst_bufSampAudio) { if (bFlagMixVoice) { bool bFlag = false; foreach (ClassMultiAudio t in lst_bufSampAudio.Where(t => t.from == "server")) { if (t.IndexMessage > AudioSample.IndexMessage) { continue; } t.IndexMessage = AudioSample.IndexMessage; t.DtRec = DateTime.Now; t.AudioStream.Write(AudioSample.Source, 0, AudioSample.Source.Length); bFlag = true; } if (bFlag == false) { var cl = new ClassMultiAudio { IndexMessage = AudioSample.IndexMessage, from = "server", DtRec = DateTime.Now }; cl.AudioStream.Write(AudioSample.Source, 0, AudioSample.Source.Length); lst_bufSampAudio.Add(cl); } } else mFifo.Write(AudioSample.Source, 0, AudioSample.Source.Length); RecByte += AudioSample.Source.Length; } }
public void AudioIPSample(SendBytes sb) { // return; if (ServiceTime - sb.TimeStamp > TimeSpan.FromMilliseconds(2000)) { MissAudioMessage++; OnPropertyChanged("TestInfo2"); return; } IndexAudioMessage = sb.IndexMessage; GC.Collect(); var AudioSample = VoiceCapturedEventArgs.Deserialise(sb.Data.Clone() as byte[]); if (sb.From == ServerName) { if (!IsIpAudioRecived) return; } lock (lst_bufSampAudio) { if (bFlagMixVoice) { bool bFlag = false; foreach (ClassMultiAudio t in lst_bufSampAudio.Where(t => t.from == sb.From)) { if (t.IndexMessage > AudioSample.IndexMessage) { continue; } t.IndexMessage = AudioSample.IndexMessage; t.DtRec = DateTime.Now; t.AudioStream.Write(AudioSample.Source, 0, AudioSample.Source.Length); bFlag = true; } if (bFlag == false) { var cl = new ClassMultiAudio() { from = sb.From, IndexMessage = AudioSample.IndexMessage }; cl.DtRec = DateTime.Now; cl.AudioStream.Write(AudioSample.Source, 0, AudioSample.Source.Length); lst_bufSampAudio.Add(cl); } } else mFifo.Write(AudioSample.Source, 0, AudioSample.Source.Length); RecByte += AudioSample.Source.Length; } // throw new NotImplementedException(); }