本文整理汇总了C#中IChannel.HangUpDetect方法的典型用法代码示例。如果您正苦于以下问题:C# IChannel.HangUpDetect方法的具体用法?C# IChannel.HangUpDetect怎么用?C# IChannel.HangUpDetect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IChannel
的用法示例。
在下文中一共展示了IChannel.HangUpDetect方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PlayMessage
/// <summary>
/// Plays the message.
/// </summary>
/// <param name="channel">The channel.</param>
/// <param name="text">The text.</param>
/// <param name="allowBreak">if set to <c>true</c> [allow break].</param>
/// <param name="playType">Type of the play.</param>
/// <returns></returns>
public override SwitchStatus PlayMessage(IChannel channel, string text, bool allowBreak, TTSPlayType playType)
{
if (!canWork)
{
Logger.Warn("��TTS�����ʼ��ʧ�ܻ�����ԭ����ɲ����ã����ܽ���TTS����");
return SwitchStatus.FAILURE;
}
if (channel == null)
{
Logger.Warn("����ͨ������δ��ʼ�����ܽ���TTS����");
return SwitchStatus.FAILURE;
}
lock (D160X.SyncObj)
{
Logger.Info(string.Format("ͨ�� {0} ��TTS�������������Ϊ��{1}", channel.ChannelID, text));
Int32 Playflag = TTS3.DJTTS3_StartPlayText(channel.ChannelID, Encoding.UTF8.GetBytes(text), TTS3.INFO_TEXT_BUFFER,
0, 45, 50, XmlTag ? TTS3.INFO_USE_LABLE : TTS3.INFO_NOTUSE_LABLE);
Logger.Debug("TTS��������" + Playflag.ToString());
D160X.InitDtmfBuf(channel.ChannelID);
}
// �ڷ�����Ҫ���ϵļ�����Ƿ��Ѿ��������
Int32 Playend = TTS3.INFO_PLAY_NOT_COMPLATE;
while(Playend == TTS3.INFO_PLAY_NOT_COMPLATE)
{
lock (D160X.SyncObj)
{
D160X.PUSH_PLAY();
}
System.Threading.Thread.Sleep(Defaultdelay);
bool dtmfHited = false;
lock (D160X.SyncObj)
{
dtmfHited = D160X.DtmfHit(channel.ChannelID);
}
if (allowBreak && dtmfHited)
{
lock (D160X.SyncObj)
{
TTS3.DJTTS3_StopPlayText(channel.ChannelID);
}
Logger.Info(string.Format("ͨ�� {0} TTS������̱��Է������ж�", channel.ChannelID));
return SwitchStatus.BREAK;
}
if (channel.HangUpDetect())
{
lock (D160X.SyncObj)
{
TTS3.DJTTS3_StopPlayText(channel.ChannelID);
}
Logger.Info(string.Format("ͨ�� {0} TTS������̱��Է��һ��ж�", channel.ChannelID));
channel.ResetChannel();
return SwitchStatus.BREAK;
}
lock (D160X.SyncObj)
{
Playend = TTS3.DJTTS3_CheckPlayTextEnd(channel.ChannelID);
}
}
lock (D160X.SyncObj)
{
TTS3.DJTTS3_StopPlayText(channel.ChannelID);
}
Logger.Info(string.Format("ͨ�� {0} TTS�������", channel.ChannelID));
return SwitchStatus.SUCCESS;
}