index.html 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <link rel="stylesheet" href="./index.css" />
  9. </head>
  10. <body>
  11. <!-- Babylon.js -->
  12. <script src="./libs/jquery-1.10.2.min.js"></script>
  13. <script src="./libs/dat.gui.min.js"></script>
  14. <script src="./libs/ammo.js"></script>
  15. <script src="./libs/cannon.js"></script>
  16. <script src="./libs/Oimo.js"></script>
  17. <script src="./libs/earcut.min.js"></script>
  18. <script src="./libs/recast.js"></script>
  19. <script src="./libs/babylon.js"></script>
  20. <script src="./libs/babylonjs.materials.min.js"></script>
  21. <script src="./libs/babylonjs.proceduralTextures.min.js"></script>
  22. <script src="./libs/babylonjs.postProcess.min.js"></script>
  23. <script src="./libs/babylonjs.loaders.js"></script>
  24. <script src="./libs/babylonjs.serializers.min.js"></script>
  25. <script src="./libs/babylon.gui.min.js"></script>
  26. <script src="./libs/babylon.inspector.bundle.js"></script>
  27. <script src="./libs/socket.2.3.js"></script>
  28. <script src="./libs/events.js"></script>
  29. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  30. <!-- <script src="./webrtc//adapter-7.4.0.min.js"></script>
  31. <script src="./webrtc/srs.sdk.js"></script> -->
  32. <script>
  33. const SERVER_URLS = {
  34. DEV: "wss://sit-eks.xverse.cn/ws",
  35. PROD: "wss://eks.xverse.cn/ws"
  36. }
  37. , REPORT_URL = {
  38. DEV: "https://xa.xverse.cn:6680/collect",
  39. PROD: "https://xa.xverse.cn/collect"
  40. }
  41. , MAX_RECONNECT_COUNT = 3
  42. , DEFAULT_JOINROOM_TIMEOUT = 15e3
  43. , DEFAULT_MAIN_CAMERA_FOV = 50
  44. , DEFAULT_AVATAR_SCALE = 1
  45. , REPORT_NUM_PER_REQUEST = 20
  46. , DEFAULT_OPEN_TIMEOUT_MS = 6e3
  47. , WS_CLOSE_NORMAL = 1e3
  48. , WS_CLOSE_RECONNECT = 3008
  49. , PING_INTERVAL_MS = 1e3
  50. , TEXTURE_URL = "https://static.xverse.cn/qqktv/texture.png"
  51. , REPORT_MODULE_TYPE = "xverse-js"
  52. , authenticationErrorCodes = [3001, 3002, 3003, 3005]
  53. , RTT_MAX_VALUE = 200
  54. , HB_MAX_VALUE = 500
  55. , DURATION = 10
  56. , NET_INTERVAL = 1;
  57. const VERSION$1 = "1.0.75"
  58. , ENV = "production";
  59. var De = Object.defineProperty
  60. , Ne = Object.defineProperties;
  61. var we = Object.getOwnPropertyDescriptors;
  62. var be = Object.getOwnPropertySymbols;
  63. var Me = Object.prototype.hasOwnProperty
  64. , Ie = Object.prototype.propertyIsEnumerable;
  65. var Se = (i,e,t)=>e in i ? De(i, e, {
  66. enumerable: !0,
  67. configurable: !0,
  68. writable: !0,
  69. value: t
  70. }) : i[e] = t
  71. , oe = (i,e)=>{
  72. for (var t in e || (e = {}))
  73. Me.call(e, t) && Se(i, t, e[t]);
  74. if (be)
  75. for (var t of be(e))
  76. Ie.call(e, t) && Se(i, t, e[t]);
  77. return i
  78. }
  79. , le = (i,e)=>Ne(i, we(e));
  80. var Oe = (i,e)=>{
  81. var t = {};
  82. for (var r in i)
  83. Me.call(i, r) && e.indexOf(r) < 0 && (t[r] = i[r]);
  84. if (i != null && be)
  85. for (var r of be(i))
  86. e.indexOf(r) < 0 && Ie.call(i, r) && (t[r] = i[r]);
  87. return t
  88. };
  89. </script>
  90. <div id="root">
  91. <div id="canvas">
  92. </div>
  93. <div class="debug_control_btns">
  94. <button class="debugger1">Toggle Stats</button>
  95. <button class="debugger2">取消低模着色</button>
  96. <button class="debugger3">画质:高</button>
  97. <button class="font-size-small debugger4" onclick="room.debug.toggleNearbyBreathPoint">Toggle周边呼吸点</button>
  98. <button class="font-size-small debugger5" onclick="room.debug.toggleTapBreathPoint">Toggle点击呼吸点</button>
  99. <button class="font-size-small debugger6" >录制码流(10s)</button>
  100. </div>
  101. </div>
  102. <script type="module">
  103. document.querySelector('.debugger1').onclick = ()=>{
  104. var y, b;
  105. (y = room.stats) != null && y.isShow
  106. ? room.stats.hide()
  107. : (b = room.stats) == null || b.show();
  108. }
  109. document.querySelector('.debugger2').onclick = ()=>{
  110. room.debug.toggleSceneshading(), r(room.debug.isSceneShading);
  111. }
  112. document.querySelector('.debugger3').onclick = ()=>{
  113. let y = "average";
  114. n === "high"
  115. ? (y = "average")
  116. : n === "average"
  117. ? (y = "low")
  118. : n === "low"
  119. ? (y = "high")
  120. : (y = "average"),
  121. o(y),
  122. room.setPictureQualityLevel(y);
  123. }
  124. document.querySelector('.debugger4').onclick = ()=>{
  125. room.debug.toggleNearbyBreathPoint();
  126. }
  127. document.querySelector('.debugger5').onclick = ()=>{
  128. room.debug.toggleTapBreathPoint();
  129. }
  130. document.querySelector('.debugger6').onclick = ()=>{
  131. room.debug.dumpStream(() => {
  132. // toast("\u5F55\u5236\u5B8C\u6210");
  133. });
  134. // toast("\u5F00\u59CB\u5F55\u5236");
  135. }
  136. </script>
  137. <script src="js/index.js"></script>
  138. </body>
  139. </html>