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

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;
});
}
}
}