You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.2 KiB
99 lines
3.2 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using ShenTun.Speech.Common;
|
|
namespace ShenTun.Speech.Instance
|
|
{
|
|
public class ClientSpeech
|
|
{
|
|
public async Task<string> ConnectAsync(string reqStr)
|
|
{
|
|
return await Task.Run(() =>
|
|
{
|
|
string resStr = string.Empty;
|
|
RequestConnect req = ClientConfig.DeserializeObject<RequestConnect>(reqStr);
|
|
Response res = new Response()
|
|
{
|
|
code = -101,
|
|
};
|
|
|
|
try
|
|
{
|
|
int ret = WinApi.IniSpeechConnect(req.SvrIp, req.SvrPort, "", "");
|
|
if (ret != 1)
|
|
{
|
|
res.code = -100;
|
|
res.message = "初始化IP和端口失败";
|
|
}
|
|
else
|
|
{
|
|
res.code = 1;
|
|
res.message = "Success";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
res.code = -100;
|
|
res.message = ex.Message;
|
|
}
|
|
|
|
resStr = ClientConfig.SerializeObject(res);
|
|
return resStr;
|
|
});
|
|
}
|
|
|
|
public async Task<string> SendTextAsync(string reqStr)
|
|
{
|
|
return await Task.Run(() =>
|
|
{
|
|
string resStr = string.Empty;
|
|
RequestSendText req = ClientConfig.DeserializeObject<RequestSendText>(reqStr);
|
|
Response res = new Response()
|
|
{
|
|
code = -101,
|
|
};
|
|
|
|
try
|
|
{
|
|
int ret = WinApi.SendSpeechText(req.SendText, req.RepatPlayNum, req.Delay);
|
|
if (ret == 1)
|
|
{
|
|
res.code = 1;
|
|
res.message = "Success";
|
|
}
|
|
else if (ret == -1)
|
|
{
|
|
res.code = -101;
|
|
res.message = string.Format("语音发送失败,错误码:{0},接收到错误的返回值", ret);
|
|
}
|
|
else if (ret == -2)
|
|
{
|
|
res.code = -102;
|
|
res.message = string.Format("语音发送失败,错误码:{0},数据不能为空", ret);
|
|
}
|
|
else if (ret == -3)
|
|
{
|
|
res.code = -102;
|
|
res.message = string.Format("语音发送失败,错误码:{0},连接语音播放服务器失败", ret);
|
|
}
|
|
else
|
|
{
|
|
res.code = -100;
|
|
res.message = string.Format("语音发送失败,错误码:{0}", ret);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
res.code = -100;
|
|
res.message = ex.Message;
|
|
}
|
|
|
|
resStr = ClientConfig.SerializeObject(res);
|
|
return resStr;
|
|
});
|
|
|
|
}
|
|
}
|
|
}
|