SCRtcHandle.cs 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  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. //开启摄像头
  72. public void startCamera()
  73. {
  74. JsonData data = new JsonData();
  75. data["action"] = "startCamera";
  76. // jsondata.Enqueue(data);
  77. }
  78. //关闭摄像头
  79. public void stopCamera()
  80. {
  81. JsonData data = new JsonData();
  82. data["action"] = "stopCamera";
  83. // jsondata.Enqueue(data);
  84. }
  85. //设置Video大小
  86. public void changeVideo(int w,int h,int fps)
  87. {
  88. JsonData data = new JsonData();
  89. data["action"] = "changeVideo";
  90. data["data"] = new JsonData();
  91. data["data"]["w"] = w;
  92. data["data"]["h"] = h;
  93. data["data"]["fps"] = fps;
  94. jsondata.Enqueue(data);
  95. }
  96. //开启或关闭Audio
  97. public void sendMic(bool boo)
  98. {
  99. JsonData data = new JsonData();
  100. data["action"] = "sendMic";
  101. data["data"] = new JsonData();
  102. data["data"]["boo"] = boo;
  103. jsondata.Enqueue(data);
  104. }
  105. public void setMute(bool boo)
  106. {
  107. JsonData data = new JsonData();
  108. data["action"] = "setMute";
  109. data["data"] = new JsonData();
  110. data["data"]["boo"] = boo;
  111. jsondata.Enqueue(data);
  112. }
  113. //开启或关闭Video
  114. public void sendVideo(bool boo)
  115. {
  116. JsonData data = new JsonData();
  117. data["action"] = "sendVideo";
  118. data["data"] = new JsonData();
  119. data["data"]["boo"] = boo;
  120. jsondata.Enqueue(data);
  121. }
  122. //开启或关闭全部Video
  123. public void enableAudioOnly(bool boo)
  124. {
  125. JsonData data = new JsonData();
  126. data["action"] = "enableAudioOnly";
  127. data["data"] = new JsonData();
  128. data["data"]["boo"] = boo;
  129. jsondata.Enqueue(data);
  130. }
  131. //开启或关闭全部Audio
  132. public void enableVideoOnly(bool boo)
  133. {
  134. JsonData data = new JsonData();
  135. data["action"] = "enableVideoOnly";
  136. data["data"] = new JsonData();
  137. data["data"]["boo"] = boo;
  138. jsondata.Enqueue(data);
  139. }
  140. //开启扬声器
  141. public void openSpeaker()
  142. {
  143. JsonData data = new JsonData();
  144. data["action"] = "openSpeaker";
  145. data["data"] = new JsonData();
  146. data["data"]["boo"] = true ;
  147. jsondata.Enqueue(data);
  148. }
  149. //关闭扬声器
  150. public void closeSpeaker()
  151. {
  152. JsonData data = new JsonData();
  153. data["action"] = "closeSpeaker";
  154. data["data"] = new JsonData();
  155. data["data"]["boo"] = false;
  156. jsondata.Enqueue(data);
  157. }
  158. //调节音量
  159. public void setVolume(int i)
  160. {
  161. JsonData data = new JsonData();
  162. data["action"] = "setVolume";
  163. data["data"] = new JsonData();
  164. data["data"]["i"] = i;
  165. jsondata.Enqueue(data);
  166. }
  167. //调节外放音量
  168. public void setSpeakerVolume(int i)
  169. {
  170. JsonData data = new JsonData();
  171. data["action"] = "setSpeakerVolume";
  172. data["data"] = new JsonData();
  173. data["data"]["i"] = i;
  174. jsondata.Enqueue(data);
  175. }
  176. //订阅某人的设备
  177. public void openRev(string consumerId)
  178. {
  179. WSHandler.Rtc.subscribe(consumerId);
  180. JsonData data = new JsonData();
  181. data["action"] = "openRev";
  182. data["data"] = new JsonData();
  183. data["data"]["consumerId"] = consumerId;
  184. jsondata.Enqueue(data);
  185. }
  186. //取消订阅某人的设备
  187. public void closeRev(string consumerId)
  188. {
  189. WSHandler.Rtc.unsubscribe(consumerId);
  190. JsonData data = new JsonData();
  191. data["action"] = "closeRev";
  192. data["data"] = new JsonData();
  193. data["data"]["consumerId"] = consumerId;
  194. jsondata.Enqueue(data);
  195. }
  196. //关闭RTC
  197. public void Close()
  198. {
  199. WSHandler.Rtc.leave();
  200. Debug.Log("close22222");
  201. JsonData data = new JsonData();
  202. data["action"] = "Close";
  203. jsondata.Enqueue(data);
  204. Debug.Log("close22222end");
  205. }
  206. //设置TextureID
  207. public void addTextureID(string peerId,int textureID)
  208. {
  209. JsonData data = new JsonData();
  210. data["action"] = "addTextureID";
  211. data["data"] = new JsonData();
  212. data["data"]["peerId"] = peerId;
  213. data["data"]["textureID"] = textureID;
  214. jsondata.Enqueue(data);
  215. }
  216. //调节自身音量
  217. public void audioMeChange(double d)
  218. {
  219. JsonData data = new JsonData();
  220. data["action"] = "audioMeChange";
  221. data["data"] = new JsonData();
  222. data["data"]["d"] = d;
  223. jsondata.Enqueue(data);
  224. }
  225. //设置Peer帧率
  226. public void changePeerVideo(string consumerId,double d)
  227. {
  228. JsonData data = new JsonData();
  229. data["action"] = "changePeerVideo";
  230. data["data"] = new JsonData();
  231. data["data"]["fps"] = d;
  232. data["data"]["consumerId"] = consumerId;
  233. jsondata.Enqueue(data);
  234. }
  235. //调节他人音量
  236. public void audioPeerChange(string consumerId, double d)
  237. {
  238. JsonData data = new JsonData();
  239. data["action"] = "audioPeerChange";
  240. data["data"] = new JsonData();
  241. data["data"]["d"] = d;
  242. data["data"]["consumerId"] = consumerId;
  243. jsondata.Enqueue(data);
  244. }
  245. //获取音量
  246. public void GetaudioMe()
  247. {
  248. JsonData data = new JsonData();
  249. data["action"] = "GetaudioMe";
  250. jsondata.Enqueue(data);
  251. }
  252. //获取他人音量
  253. public void GetaudioPeer(string consumerId)
  254. {
  255. JsonData data = new JsonData();
  256. data["action"] = "GetaudioPeer";
  257. jsondata.Enqueue(data);
  258. }
  259. public void onSocketMesseage(string msg)
  260. {
  261. JsonData data = new JsonData();
  262. data["action"] = "onSocketMesseage";
  263. data["data"] = msg;
  264. jsondata.Enqueue(data);
  265. }
  266. public void initRtpCapabilities(string msg)
  267. {
  268. JsonData data = new JsonData();
  269. data["action"] = "initRtpCapabilities";
  270. data["data"] = msg;
  271. jsondata.Enqueue(data);
  272. }
  273. public void createRecvTransport(string msg)
  274. {
  275. JsonData data = new JsonData();
  276. data["action"] = "createRecvTransport";
  277. data["data"] = msg;
  278. jsondata.Enqueue(data);
  279. }
  280. public void createSendTransport(string msg)
  281. {
  282. JsonData data = new JsonData();
  283. data["action"] = "createSendTransport";
  284. data["data"] = msg;
  285. jsondata.Enqueue(data);
  286. }
  287. public void onNewConsumer(string msg,string id)
  288. {
  289. JsonData data = new JsonData();
  290. data["action"] = "onNewConsumer";
  291. data["data"] = msg;
  292. data["id"] = id;
  293. jsondata.Enqueue(data);
  294. }
  295. public void getDevice()
  296. {
  297. JsonData data = new JsonData();
  298. data["action"] = "getDevice";
  299. jsondata.Enqueue(data);
  300. }
  301. public void addCameraLocal(int L)
  302. {
  303. JsonData data = new JsonData();
  304. data["action"] = "addCameraLocal";
  305. data["L"] = L;
  306. jsondata.Enqueue(data);
  307. }
  308. public void setProduce(string msg)
  309. {
  310. // (_Instance.mSCRtcEngine as SCRtcAndroidEngine).setProduce(msg);
  311. }
  312. }