Пример #1
0
 void startAudioForwarding(WavBuffer wb)
 {
     BeginInvoke((MethodInvoker) delegate
     {
         if (m_AudRecorder != null && wb != null && contactsMesh != null)
         {
             ZelloPTTLib.IMessage msg = null;
             List <string> lst        = new List <string>();
             foreach (string id in lstForwardContactIds)
             {
                 lst.Add(id);
             }
             if (lst.Count > 0)
             {
                 ZelloPTTLib.IAudioStream strm = m_AudRecorder.MessageOutBeginEx(lst.ToArray(), string.Empty, out msg);
                 if (strm != null && msg != null)
                 {
                     pbForwardAudio.Visible    = true;
                     AudioMessageRecording rec = new AudioMessageRecording(wb as MultiClientSample.IReadWav);
                     rec.AllDataWritten       += new EventHandler(ForwardAudio_AllDataWritten);
                     lstOutMessages.Add(rec);
                     rec.SetStream(strm);
                 }
             }
         }
     });
 }
        ZelloPTTLib.IAudioStream ZelloPTTLib.IAudioMessagePlayback.MessageInBegin(ZelloPTTLib.IMessage pMessage)
        {
            AudioStreamImpl rv = new AudioStreamImpl(cntMessages);

            if (false == String.IsNullOrEmpty(savePath))
            {
                WriteWav ww = new WriteWav(GetSaveFileName(pMessage));
                if (ww.Valid)
                {
                    rv.AddSink(ww);
                }
            }
            if (bForwardAudio)
            {
                WavBuffer wb = new WavBuffer();
                wb.AudioRcvStarted += dlgt;
                rv.AddSink(wb);
            }
            cntMessages++;
            lstActiveStreams.Add(rv);
            rv.OnEndOfStream += new AudioStreamImpl.dlgtFinished(OnEndOfStream);
            return(rv as ZelloPTTLib.IAudioStream);
        }