public void TalkTo(CameraWindow cw, bool talk)
{
if (string.IsNullOrEmpty(Conf.TalkMic))
return;
if (_talkSource != null)
{
_talkSource.Stop();
_talkSource = null;
}
if (_talkTarget != null)
{
_talkTarget.Stop();
_talkTarget = null;
}
if (!talk)
{
if (cw.VolumeControl != null)
{
cw.VolumeControl.Listening = false;
}
return;
}
Application.DoEvents();
TalkCamera = cw;
_talkSource = new TalkDeviceStream(Conf.TalkMic) {RecordingFormat = new WaveFormat(8000, 16, 1)};
_talkSource.AudioFinished += _talkSource_AudioFinished;
if (!_talkSource.IsRunning)
_talkSource.Start();
_talkTarget = TalkHelper.GetTalkTarget(cw.Camobject, _talkSource);
_talkTarget.TalkStopped += TalkTargetTalkStopped;
_talkTarget.Start();
//auto listen
if (cw.VolumeControl != null)
{
cw.VolumeControl.Listening = true;
}
}