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

1 month ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using ShenTun.Speech.Common;
  7. namespace ShenTun.Speech.Instance
  8. {
  9. public class ClientSpeech
  10. {
  11. public async Task<string> ConnectAsync(string reqStr)
  12. {
  13. return await Task.Run(() =>
  14. {
  15. string resStr = string.Empty;
  16. RequestConnect req = ClientConfig.DeserializeObject<RequestConnect>(reqStr);
  17. Response res = new Response()
  18. {
  19. code = -101,
  20. };
  21. try
  22. {
  23. int ret = WinApi.IniSpeechConnect(req.SvrIp, req.SvrPort, "", "");
  24. if (ret != 1)
  25. {
  26. res.code = -100;
  27. res.message = "初始化IP和端口失败";
  28. }
  29. else
  30. {
  31. res.code = 1;
  32. res.message = "Success";
  33. }
  34. }
  35. catch (Exception ex)
  36. {
  37. res.code = -100;
  38. res.message = ex.Message;
  39. }
  40. resStr = ClientConfig.SerializeObject(res);
  41. return resStr;
  42. });
  43. }
  44. public async Task<string> SendTextAsync(string reqStr)
  45. {
  46. return await Task.Run(() =>
  47. {
  48. string resStr = string.Empty;
  49. RequestSendText req = ClientConfig.DeserializeObject<RequestSendText>(reqStr);
  50. Response res = new Response()
  51. {
  52. code = -101,
  53. };
  54. try
  55. {
  56. int ret = WinApi.SendSpeechText(req.SendText, req.RepatPlayNum, req.Delay);
  57. if (ret == 1)
  58. {
  59. res.code = 1;
  60. res.message = "Success";
  61. }
  62. else if (ret == -1)
  63. {
  64. res.code = -101;
  65. res.message = string.Format("语音发送失败,错误码:{0},接收到错误的返回值", ret);
  66. }
  67. else if (ret == -2)
  68. {
  69. res.code = -102;
  70. res.message = string.Format("语音发送失败,错误码:{0},数据不能为空", ret);
  71. }
  72. else if (ret == -3)
  73. {
  74. res.code = -102;
  75. res.message = string.Format("语音发送失败,错误码:{0},连接语音播放服务器失败", ret);
  76. }
  77. else
  78. {
  79. res.code = -100;
  80. res.message = string.Format("语音发送失败,错误码:{0}", ret);
  81. }
  82. }
  83. catch (Exception ex)
  84. {
  85. res.code = -100;
  86. res.message = ex.Message;
  87. }
  88. resStr = ClientConfig.SerializeObject(res);
  89. return resStr;
  90. });
  91. }
  92. }
  93. }