SCRtcHandle.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. 
  2. using LitJson;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. public class SCRtcHandle
  6. {
  7. public bool isSendOk = true;
  8. Queue<JsonData> jsondata = new Queue<JsonData>();
  9. public SCRtcEngine mSCRtcEngine;
  10. private static SCRtcHandle _Instance;
  11. public static SCRtcHandle Instance
  12. {
  13. get
  14. {
  15. if (_Instance == null)
  16. {
  17. _Instance = new SCRtcHandle();
  18. _Instance.mSCRtcEngine = new SCRtcAndroidEngine();
  19. #if UNITY_ANDROID && !UNITY_EDITOR
  20. _Instance.mSCRtcEngine = new SCRtcAndroidEngine();
  21. #endif
  22. #if UNITY_IOS && !UNITY_EDITOR
  23. _Instance.mSCRtcEngine = new SCRtcIosEngine();
  24. #endif
  25. }
  26. return _Instance;
  27. }
  28. }
  29. public void goThread()
  30. {
  31. //Debug.Log("goThread=============>");
  32. mSCRtcEngine.send(jsondata);
  33. }
  34. //加入RTC
  35. public void InitRTC(SCRtcConfig scC)
  36. {
  37. JsonData data = new JsonData();
  38. data["action"] = "InitRTC";
  39. data["data"] = new JsonData();
  40. data["data"]["RoomId"] = scC.RoomId;
  41. data["data"]["roomPwd"] = scC.roomPwd;
  42. data["data"]["isSendAudio"] = scC.isSendAudio;
  43. data["data"]["isSendVideo"] = scC.isSendVideo;
  44. data["data"]["isRevAllAudio"] = scC.isRevAllAudio;
  45. data["data"]["isRevAllVideo"] = scC.isRevAllVideo;
  46. data["data"]["mWidth"] = scC.mWidth;
  47. data["data"]["mHight"] = scC.mHight;
  48. data["data"]["FPS"] = scC.FPS;
  49. data["data"]["Url"] = scC.Url;
  50. data["data"]["Post"] = scC.Post;
  51. jsondata.Enqueue(data);
  52. }
  53. //加入房间
  54. public void joinRoom(string req)
  55. {
  56. JsonData data = new JsonData();
  57. data["action"] = "joinRoom";
  58. data["data"] = new JsonData();
  59. data["data"]["req"] = req;
  60. jsondata.Enqueue(data);
  61. }
  62. //加入房间
  63. public void changeName(string name)
  64. {
  65. JsonData data = new JsonData();
  66. data["action"] = "changeName";
  67. data["data"] = new JsonData();
  68. data["data"]["name"] = name;
  69. jsondata.Enqueue(data);
  70. }
  71. //设置Video大小
  72. public void changeVideo(int w,int h,int fps)
  73. {
  74. JsonData data = new JsonData();
  75. data["action"] = "changeVideo";
  76. data["data"] = new JsonData();
  77. data["data"]["w"] = w;
  78. data["data"]["h"] = h;
  79. data["data"]["fps"] = fps;
  80. jsondata.Enqueue(data);
  81. }
  82. //开启或关闭Audio
  83. public void sendMic(bool boo)
  84. {
  85. JsonData data = new JsonData();
  86. data["action"] = "sendMic";
  87. data["data"] = new JsonData();
  88. data["data"]["boo"] = boo;
  89. jsondata.Enqueue(data);
  90. }
  91. public void setMute(bool boo)
  92. {
  93. JsonData data = new JsonData();
  94. data["action"] = "setMute";
  95. data["data"] = new JsonData();
  96. data["data"]["boo"] = boo;
  97. jsondata.Enqueue(data);
  98. }
  99. //开启或关闭Video
  100. public void sendVideo(bool boo)
  101. {
  102. JsonData data = new JsonData();
  103. data["action"] = "sendVideo";
  104. data["data"] = new JsonData();
  105. data["data"]["boo"] = boo;
  106. jsondata.Enqueue(data);
  107. }
  108. //开启或关闭全部Video
  109. public void enableAudioOnly(bool boo)
  110. {
  111. JsonData data = new JsonData();
  112. data["action"] = "enableAudioOnly";
  113. data["data"] = new JsonData();
  114. data["data"]["boo"] = boo;
  115. jsondata.Enqueue(data);
  116. }
  117. //开启或关闭全部Audio
  118. public void enableVideoOnly(bool boo)
  119. {
  120. JsonData data = new JsonData();
  121. data["action"] = "enableVideoOnly";
  122. data["data"] = new JsonData();
  123. data["data"]["boo"] = boo;
  124. jsondata.Enqueue(data);
  125. }
  126. //开启扬声器
  127. public void openSpeaker()
  128. {
  129. JsonData data = new JsonData();
  130. data["action"] = "openSpeaker";
  131. data["data"] = new JsonData();
  132. data["data"]["boo"] = true ;
  133. jsondata.Enqueue(data);
  134. }
  135. //关闭扬声器
  136. public void closeSpeaker()
  137. {
  138. JsonData data = new JsonData();
  139. data["action"] = "closeSpeaker";
  140. data["data"] = new JsonData();
  141. data["data"]["boo"] = false;
  142. jsondata.Enqueue(data);
  143. }
  144. //调节音量
  145. public void setVolume(int i)
  146. {
  147. JsonData data = new JsonData();
  148. data["action"] = "setVolume";
  149. data["data"] = new JsonData();
  150. data["data"]["i"] = i;
  151. jsondata.Enqueue(data);
  152. }
  153. //调节外放音量
  154. public void setSpeakerVolume(int i)
  155. {
  156. JsonData data = new JsonData();
  157. data["action"] = "setSpeakerVolume";
  158. data["data"] = new JsonData();
  159. data["data"]["i"] = i;
  160. jsondata.Enqueue(data);
  161. }
  162. //订阅某人的设备
  163. public void openRev(string consumerId)
  164. {
  165. JsonData data = new JsonData();
  166. data["action"] = "openRev";
  167. data["data"] = new JsonData();
  168. data["data"]["consumerId"] = consumerId;
  169. jsondata.Enqueue(data);
  170. }
  171. //取消订阅某人的设备
  172. public void closeRev(string consumerId)
  173. {
  174. JsonData data = new JsonData();
  175. data["action"] = "closeRev";
  176. data["data"] = new JsonData();
  177. data["data"]["consumerId"] = consumerId;
  178. jsondata.Enqueue(data);
  179. }
  180. //关闭RTC
  181. public void Close()
  182. {
  183. Debug.Log("close22222");
  184. JsonData data = new JsonData();
  185. data["action"] = "Close";
  186. jsondata.Enqueue(data);
  187. Debug.Log("close22222end");
  188. }
  189. //设置TextureID
  190. public void addTextureID(string peerId,int textureID)
  191. {
  192. JsonData data = new JsonData();
  193. data["action"] = "addTextureID";
  194. data["data"] = new JsonData();
  195. data["data"]["peerId"] = peerId;
  196. data["data"]["textureID"] = textureID;
  197. jsondata.Enqueue(data);
  198. }
  199. //调节自身音量
  200. public void audioMeChange(double d)
  201. {
  202. JsonData data = new JsonData();
  203. data["action"] = "audioMeChange";
  204. data["data"] = new JsonData();
  205. data["data"]["d"] = d;
  206. jsondata.Enqueue(data);
  207. }
  208. //设置Peer帧率
  209. public void changePeerVideo(string consumerId,double d)
  210. {
  211. JsonData data = new JsonData();
  212. data["action"] = "changePeerVideo";
  213. data["data"] = new JsonData();
  214. data["data"]["fps"] = d;
  215. data["data"]["consumerId"] = consumerId;
  216. jsondata.Enqueue(data);
  217. }
  218. //调节他人音量
  219. public void audioPeerChange(string consumerId, double d)
  220. {
  221. JsonData data = new JsonData();
  222. data["action"] = "audioPeerChange";
  223. data["data"] = new JsonData();
  224. data["data"]["d"] = d;
  225. data["data"]["consumerId"] = consumerId;
  226. jsondata.Enqueue(data);
  227. }
  228. //获取音量
  229. public void GetaudioMe()
  230. {
  231. JsonData data = new JsonData();
  232. data["action"] = "GetaudioMe";
  233. jsondata.Enqueue(data);
  234. }
  235. //获取他人音量
  236. public void GetaudioPeer(string consumerId)
  237. {
  238. JsonData data = new JsonData();
  239. data["action"] = "GetaudioPeer";
  240. jsondata.Enqueue(data);
  241. }
  242. }