main.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. // login
  2. var setting = {
  3. username: "huashe1",
  4. password: "huashe123",
  5. ip: "10.55.134.3",
  6. host: "http",
  7. port: "6699",
  8. };
  9. setting.URL = setting.host + "://" + setting.ip + ":" + setting.port;
  10. localStorage.setItem("url", setting.URL);
  11. window.onload = () => {
  12. window.addEventListener(
  13. "message",
  14. async(e) => {
  15. // 指定域名 防止xss 攻击
  16. // if (e.origin != "") return;
  17. if (e.data === "onload") {
  18. // 登陆 && 保活
  19. var package = new Package(setting.URL, {
  20. username: setting.username,
  21. password: setting.password,
  22. });
  23. if (localStorage.getItem('token')) {
  24. await package.keepalive();
  25. } else {
  26. await package.login();
  27. }
  28. }
  29. // 打开单兵视频
  30. if (e.data.key === "danbing") {
  31. const meeting = new Meeting();
  32. await meeting.getLocalUserInfo();
  33. const res = await meeting.queryUser(e.data.value);
  34. meeting.localUserInfo.name = "danbing_Meeting";
  35. await meeting.creatMeeting();
  36. await meeting.startInvite({
  37. userName: res.userName,
  38. userId: res.userCode,
  39. region: res.paasId,
  40. type: "single",
  41. // speak:'true',
  42. number: res.userPhone,
  43. deviceId: e.data.deviceId,
  44. channelId: e.data.channelId,
  45. });
  46. $(".video-container").css({
  47. visibility: "visible"
  48. })
  49. await meeting.openClient(
  50. () => {
  51. $(".video-action").one("click", () => {
  52. meeting.closeClient();
  53. meeting.closeVideo();
  54. meeting.deleteMeeting();
  55. $(".video-container").css({
  56. visibility: "hidden"
  57. })
  58. window.parent.postMessage("closeIframe", "*");
  59. })
  60. meeting.playVideo({
  61. type: "single",
  62. number: res.userPhone,
  63. deviceId: e.data.deviceId,
  64. channelId: e.data.channelId,
  65. })
  66. }
  67. )
  68. } else if (e.data.key === "video") {
  69. const meeting = new Meeting();
  70. console.log(e.data.channelId);
  71. $(".video-container").css({
  72. visibility: "visible"
  73. })
  74. await meeting.openClient(
  75. () => {
  76. $(".video-action").one("click", () => {
  77. meeting.closeClient();
  78. meeting.closeVideo();
  79. meeting.deleteMeeting();
  80. $(".video-container").css({
  81. visibility: "hidden"
  82. })
  83. window.parent.postMessage("closeIframe", "*");
  84. })
  85. meeting.playVideo({
  86. type: "single",
  87. deviceId: e.data.deviceId,
  88. channelId: e.data.channelId,
  89. })
  90. }
  91. )
  92. }
  93. // 视频会议
  94. if (e.data === "creatMeeting") {
  95. const meeting = new Meeting();
  96. // close video meeting iframe
  97. $("#closeMeAction").click(() => {
  98. try {
  99. meeting.closeClient();
  100. meeting.closeVideo();
  101. meeting.deleteMeeting();
  102. } catch (e) {
  103. }
  104. $(".video-container").css({
  105. visibility: "hidden"
  106. })
  107. $(".video-user-content").css({
  108. display: "none"
  109. })
  110. $(".user-list-container").css({
  111. visibility: "hidden"
  112. })
  113. window.parent.postMessage("closeIframe", "*");
  114. });
  115. $(".user-list-container").css({
  116. visibility: "visible"
  117. })
  118. // 创建会议并打开窗口
  119. $("#createMeAction").click(async() => {
  120. $(".video-user-content").css({
  121. display: "flex"
  122. })
  123. await meeting.getLocalUserInfo();
  124. // const res = await meeting.queryUser(e.data.value);
  125. meeting.localUserInfo.name = "video_Meeting";
  126. await meeting.creatMeeting();
  127. // await meeting.startInvite();
  128. await meeting.openClient();
  129. $(".video-container").css({
  130. visibility: "visible"
  131. })
  132. });
  133. $(".video-action").click(() => {
  134. try {
  135. meeting.closeClient();
  136. meeting.closeVideo();
  137. meeting.deleteMeeting();
  138. } catch (e) {}
  139. $(".video-container").css({
  140. visibility: "hidden"
  141. })
  142. })
  143. // 添加人员, 并播放视频
  144. $(".user-list").click(async(e) => {
  145. console.log(e, e.target, e.target.className, e.target.dataset, "+++");
  146. if (e.target.className === "videoAction" && e.target.dataset.code) {
  147. const res = await meeting.queryUser(e.target.dataset.code);
  148. await meeting.startInvite({
  149. userName: res.userName,
  150. userId: res.userCode,
  151. region: res.paasId,
  152. type: "client",
  153. // speak:'true',
  154. number: res.userPhone,
  155. deviceId: res.deviceId,
  156. channelId: res.chnId,
  157. });
  158. // await meeting.playVideo(meeting.InvitedMembers);
  159. meeting.playVideo({
  160. type: "client",
  161. number: res.userPhone,
  162. userId: res.userCode,
  163. deviceId: res.deviceId,
  164. channelId: res.chnId,
  165. })
  166. }
  167. });
  168. }
  169. if (e.data === "openClient") {
  170. await meeting.openClient();
  171. }
  172. },
  173. false
  174. );
  175. };