xushiting il y a 3 ans
Parent
commit
74a1c490b5
12 fichiers modifiés avec 1574 ajouts et 68 suppressions
  1. BIN
      assets/loading.f375926b.png
  2. 50 0
      dist/index.html
  3. 1177 3
      dist/js/index.js
  4. 1 1
      dist/js/index.js.map
  5. 7 0
      dist/libs/events.js
  6. 1 1
      rollup.config.js
  7. 189 0
      src/App.js
  8. 24 0
      src/Constant.js
  9. 1 26
      src/Reporter.js
  10. 26 37
      src/Xverse.js
  11. 88 0
      src/main.js
  12. 10 0
      src/util.js

BIN
assets/loading.f375926b.png


+ 50 - 0
dist/index.html

@@ -8,6 +8,56 @@
    
 </head>
 <body>
+
+    <!-- Babylon.js -->
+    <script src="./libs/jquery-1.10.2.min.js"></script>
+    <script src="./libs/dat.gui.min.js"></script>
+    <script src="./libs/ammo.js"></script>
+    <script src="./libs/cannon.js"></script>
+    <script src="./libs/Oimo.js"></script>
+    <script src="./libs/earcut.min.js"></script>
+    <script src="./libs/recast.js"></script>
+
+    <script src="./libs/babylon.js"></script>
+    <script src="./libs/babylonjs.materials.min.js"></script>
+    <script src="./libs/babylonjs.proceduralTextures.min.js"></script>
+    <script src="./libs/babylonjs.postProcess.min.js"></script>
+    <script src="./libs/babylonjs.loaders.js"></script>
+    <script src="./libs/babylonjs.serializers.min.js"></script>
+    <script src="./libs/babylon.gui.min.js"></script>
+    <script src="./libs/babylon.inspector.bundle.js"></script>
+    <script src="./libs/socket.2.3.js"></script>
+    <script src="./libs/events.js"></script>
+    <!-- <script src="./webrtc//adapter-7.4.0.min.js"></script>
+    <script src="./webrtc/srs.sdk.js"></script> -->
+    <script>
+        const SERVER_URLS = {
+            DEV: "wss://sit-eks.xverse.cn/ws",
+            PROD: "wss://eks.xverse.cn/ws"
+        }
+        , REPORT_URL = {
+            DEV: "https://xa.xverse.cn:6680/collect",
+            PROD: "https://xa.xverse.cn/collect"
+        }
+        , MAX_RECONNECT_COUNT = 3
+        , DEFAULT_JOINROOM_TIMEOUT = 15e3
+        , DEFAULT_MAIN_CAMERA_FOV = 50
+        , DEFAULT_AVATAR_SCALE = 1
+        , REPORT_NUM_PER_REQUEST = 20
+        , DEFAULT_OPEN_TIMEOUT_MS = 6e3
+        , WS_CLOSE_NORMAL = 1e3
+        , WS_CLOSE_RECONNECT = 3008
+        , PING_INTERVAL_MS = 1e3
+        , TEXTURE_URL = "https://static.xverse.cn/qqktv/texture.png"
+        , REPORT_MODULE_TYPE = "xverse-js"
+        , authenticationErrorCodes = [3001, 3002, 3003, 3005]
+        , RTT_MAX_VALUE = 200
+        , HB_MAX_VALUE = 500
+        , DURATION = 10
+        , NET_INTERVAL = 1;
+
+    </script>
+
     <script src="js/index.js"></script>
 </body>
 </html>

Fichier diff supprimé car celui-ci est trop grand
+ 1177 - 3
dist/js/index.js


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 1
dist/js/index.js.map


Fichier diff supprimé car celui-ci est trop grand
+ 7 - 0
dist/libs/events.js


+ 1 - 1
rollup.config.js

@@ -48,7 +48,7 @@ if (isProd) {
 
 export default [
     {
-        input: 'src/index.js',
+        input: 'src/main.js',
         //external: ['three'],
         output: [
             {

+ 189 - 0
src/App.js

@@ -0,0 +1,189 @@
+var loadingImage = "../assets/loading.f375926b.png";
+const jsx = jsxRuntime.exports.jsx
+  , jsxs = jsxRuntime.exports.jsxs
+  , urlParam = new window.URLSearchParams(location.search)
+  , appId = urlParam.get("appId") || void 0
+  , releaseId = urlParam.get("releaseId") || void 0;
+appId || alert("AppId \u4E0D\u80FD\u4E3A\u7A7A");
+const xverse = new Xverse({
+    env: "DEV",
+    appId,
+    releaseId
+});
+let room;
+function App() {
+    const [i,e] = react.exports.useState(!0)
+      , [t,r] = react.exports.useState(!0)
+      , [n,o] = react.exports.useState("high")
+      , [a,s] = react.exports.useState("");
+    react.exports.useEffect(()=>{
+        l()
+    }
+    , []);
+    const l = async()=>{
+        var R;
+        const f = document.querySelector("#canvas")
+          , d = urlParam.get("roomId") || "e629ef3e-022d-4e64-8654-703bb96410eb"
+          , _ = urlParam.get("userId") || Math.random().toString(16).slice(2)
+          , g = urlParam.get("avatarId") || void 0
+          , m = urlParam.get("appId") || void 0
+          , v = urlParam.get("skinId") || void 0
+          , y = urlParam.get("pathName") || void 0
+          , b = urlParam.get("objectFit") || void 0
+          , T = {
+            width: parseInt(urlParam.get("width") || "1920"),
+            height: parseInt(urlParam.get("height") || "1080")
+        }
+          , C = urlParam.get("ws") ? decodeURIComponent(urlParam.get("ws")) : "wss://uat-eks.xverse.cn/ws"
+          , A = !!urlParam.get("debug")
+          , S = !!urlParam.get("preload")
+          , P = "full";
+        if (Logger.setLevel(A ? LoggerLevels.Debug : LoggerLevels.Warn),
+        S)
+            try {
+                await ((R = xverse.preload) == null ? void 0 : R.start(P, (M,x)=>{
+                    const I = `(${M}/${x})`;
+                    s(I)
+                }
+                ))
+            } catch (M) {
+                if (console.error(M),
+                M.code === Codes.PreloadCanceled) {
+                    toast("\u9884\u52A0\u8F7D\u88AB\u53D6\u6D88");
+                    return
+                }
+                toast("\u8FDB\u5165\u5931\u8D25, \u8BF7\u91CD\u8BD5");
+                return
+            }
+        try {
+            room = await xverse.joinRoom({
+                canvas: f,
+                skinId: v,
+                avatarId: g,
+                roomId: d,
+                userId: _,
+                wsServerUrl: C,
+                appId: m,
+                token: " ",
+                nickname: _,
+                firends: ["user1"],
+                viewMode: "full",
+                resolution: T,
+                pathName: y,
+                objectFit: b,
+                hasAvatar: !0,
+                syncToOthers: !0
+            }),
+            u(),
+            c(),
+            window.room = room,
+            e(!1)
+        } catch (M) {
+            console.error(M),
+            alert(M);
+            return
+        }
+    }
+      , u = ()=>{
+        room.on("_coreClick", ({point: f})=>{
+            room._userAvatar.moveTo({
+                point: f
+            })
+        }
+        )
+    }
+      , c = ()=>{
+        room.on("repeatLogin", function() {
+            toast("\u8BE5\u7528\u6237\u5DF2\u7ECF\u5728\u5176\u4ED6\u5730\u70B9\u767B\u5F55", {
+                duration: 1e4
+            })
+        }),
+        room.on("reconnecting", function({count: f}) {
+            toast(`\u5C1D\u8BD5\u7B2C${f}\u6B21\u91CD\u8FDE`)
+        }),
+        room.on("reconnected", function() {
+            toast("\u91CD\u8FDE\u6210\u529F")
+        }),
+        room.on("disconnected", function() {
+            const f = toast("\u8FDE\u63A5\u5931\u8D25\uFF0C\u624B\u52A8\u70B9\u51FB\u91CD\u8BD5", {
+                duration: 1e5,
+                onClick() {
+                    f.hideToast(),
+                    room.reconnect()
+                }
+            })
+        })
+    }
+    ;
+    return jsxs("div", {
+        className: "App",
+        children: [jsx("canvas", {
+            id: "canvas",
+            className: "stream unselect"
+        }), !i && (()=>jsxs("div", {
+            className: "debug_control_btns",
+            children: [jsx("button", {
+                onClick: ()=>{
+                    var y, b;
+                    (y = room.stats) != null && y.isShow ? room.stats.hide() : (b = room.stats) == null || b.show()
+                }
+                ,
+                children: "Toggle Stats"
+            }), jsx("button", {
+                onClick: ()=>{
+                    room.debug.toggleSceneshading(),
+                    r(room.debug.isSceneShading)
+                }
+                ,
+                children: t ? "\u53D6\u6D88\u4F4E\u6A21\u7740\u8272" : "\u4F4E\u6A21\u7740\u8272"
+            }), jsxs("button", {
+                onClick: ()=>{
+                    let y = "average";
+                    n === "high" ? y = "average" : n === "average" ? y = "low" : n === "low" ? y = "high" : y = "average",
+                    o(y),
+                    room.setPictureQualityLevel(y)
+                }
+                ,
+                children: ["\u753B\u8D28\uFF1A", n === "high" ? "\u9AD8" : n === "low" ? "\u4F4E" : "\u4E2D"]
+            }), jsx("button", {
+                onClick: ()=>{
+                    room.debug.toggleNearbyBreathPoint()
+                }
+                ,
+                className: "font-size-small",
+                children: "Toggle\u5468\u8FB9\u547C\u5438\u70B9"
+            }), jsx("button", {
+                onClick: ()=>{
+                    room.debug.toggleTapBreathPoint()
+                }
+                ,
+                className: "font-size-small",
+                children: "Toggle\u70B9\u51FB\u547C\u5438\u70B9"
+            }), jsx("button", {
+                onClick: ()=>{
+                    try {
+                        room.debug.dumpStream(()=>{
+                            toast("\u5F55\u5236\u5B8C\u6210")
+                        }
+                        ),
+                        toast("\u5F00\u59CB\u5F55\u5236")
+                    } catch {
+                        toast("\u7801\u6D41\u5F55\u5236\u4E2D\uFF0C\u8BF7\u7A0D\u7B49")
+                    }
+                }
+                ,
+                className: "font-size-small",
+                children: "\u5F55\u5236\u7801\u6D41\uFF0810s\uFF09"
+            })]
+        }))(), i && jsxs("div", {
+            className: "loading",
+            id: "loading",
+            children: [jsx("img", {
+                src: loadingImage,
+                alt: ""
+            }), jsxs("div", {
+                children: ["\u5373\u5C06\u8FDB\u5165\u573A\u666F ", a]
+            })]
+        })]
+    })
+}

+ 24 - 0
src/Constant.js

@@ -0,0 +1,24 @@
+const SERVER_URLS = {
+    DEV: "wss://sit-eks.xverse.cn/ws",
+    PROD: "wss://eks.xverse.cn/ws"
+}
+  , REPORT_URL = {
+    DEV: "https://xa.xverse.cn:6680/collect",
+    PROD: "https://xa.xverse.cn/collect"
+}
+  , MAX_RECONNECT_COUNT = 3
+  , DEFAULT_JOINROOM_TIMEOUT = 15e3
+  , DEFAULT_MAIN_CAMERA_FOV = 50
+  , DEFAULT_AVATAR_SCALE = 1
+  , REPORT_NUM_PER_REQUEST = 20
+  , DEFAULT_OPEN_TIMEOUT_MS = 6e3
+  , WS_CLOSE_NORMAL = 1e3
+  , WS_CLOSE_RECONNECT = 3008
+  , PING_INTERVAL_MS = 1e3
+  , TEXTURE_URL = "https://static.xverse.cn/qqktv/texture.png"
+  , REPORT_MODULE_TYPE = "xverse-js"
+  , authenticationErrorCodes = [3001, 3002, 3003, 3005]
+  , RTT_MAX_VALUE = 200
+  , HB_MAX_VALUE = 500
+  , DURATION = 10
+  , NET_INTERVAL = 1;

+ 1 - 26
src/Reporter.js

@@ -1,29 +1,4 @@
-const REPORT_NUM_PER_REQUEST$1 = 20;
-const SERVER_URLS = {
-    DEV: "wss://sit-eks.xverse.cn/ws",
-    PROD: "wss://eks.xverse.cn/ws"
-}
-  , REPORT_URL = {
-    DEV: "https://xa.xverse.cn:6680/collect",
-    PROD: "https://xa.xverse.cn/collect"
-}
-  , MAX_RECONNECT_COUNT = 3
-  , DEFAULT_JOINROOM_TIMEOUT = 15e3
-  , DEFAULT_MAIN_CAMERA_FOV = 50
-  , DEFAULT_AVATAR_SCALE = 1
-  , REPORT_NUM_PER_REQUEST = 20
-  , DEFAULT_OPEN_TIMEOUT_MS = 6e3
-  , WS_CLOSE_NORMAL = 1e3
-  , WS_CLOSE_RECONNECT = 3008
-  , PING_INTERVAL_MS = 1e3
-  , TEXTURE_URL = "https://static.xverse.cn/qqktv/texture.png"
-  , REPORT_MODULE_TYPE = "xverse-js"
-  , authenticationErrorCodes = [3001, 3002, 3003, 3005]
-  , RTT_MAX_VALUE = 200
-  , HB_MAX_VALUE = 500
-  , DURATION = 10
-  , NET_INTERVAL = 1;
-class Reporter extends EventEmitter {
+export default class Reporter extends EventEmitter {
     constructor() {
         super();
         E(this, "_header", {});

+ 26 - 37
src/Xverse.js

@@ -1,42 +1,19 @@
-class Xverse extends Xverse$1 {
-    async joinRoom(e) {
-        const t = e.pathName || "thirdwalk"
-          , r = e.rotationRenderType || RenderType.RotationVideo
-          , n = e.person || Person.Third
-          , o = new XverseRoom(le(oe({}, e), {
-            appId: e.appId || this.appId,
-            releaseId: e.releaseId || this.releaseId,
-            pageSession: this.pageSession,
-            isAllSync: !0,
-            rotationRenderType: r,
-            syncByEvent: !0,
-            pathName: t,
-            person: n,
-            role: e.role || "audience"
-        }));
-        return o.initRoom().then(()=>o)
-    }
-}
+import util from "./util.js"
+import reporter from "./Reporter.js"
 
-const log$c = new Logger("xverse")
-class Xverse$1{
+export default class Xverse{
     constructor(e) {
-        E(this, "debug", !1);
-        E(this, "pageSession");
-        E(this, "preload");
-        E(this, "appId");
-        E(this, "releaseId");
         e || (e = {});
         const {onLog: t, env: r, appId: n, releaseId: o, subPackageVersion: a} = e;
-        ve.NO_CACHE = !1,
-        ve.env = r || "PROD",
-        ve.SUB_PACKAGE_VERSION = a,
+        this.NO_CACHE = !1,
+        this.env = r || "PROD",
+        this.SUB_PACKAGE_VERSION = a,
         this.debug && Logger.setLevel(LoggerLevels.Debug);
-        const s = this.pageSession = uuid$1();
+        const s = this.pageSession = util.uuid();
         if (reporter.updateHeader({
             pageSession: s
         }),
-        reporter.updateReportUrl(REPORT_URL[ve.env]),
+        reporter.updateReportUrl(REPORT_URL[this.env]),
         a && reporter.updateBody({
             sdkVersion: a
         }),
@@ -79,10 +56,22 @@ class Xverse$1{
             id: "hack "
         }]
     }
-}
-;
 
-E(Xverse$1, "NO_CACHE"),
-E(Xverse$1, "USE_TME_CDN"),
-E(Xverse$1, "env"),
-E(Xverse$1, "SUB_PACKAGE_VERSION");
+    async joinRoom(e) {
+        const t = e.pathName || "thirdwalk"
+          , r = e.rotationRenderType || RenderType.RotationVideo
+          , n = e.person || Person.Third
+          , o = new XverseRoom(le(oe({}, e), {
+            appId: e.appId || this.appId,
+            releaseId: e.releaseId || this.releaseId,
+            pageSession: this.pageSession,
+            isAllSync: !0,
+            rotationRenderType: r,
+            syncByEvent: !0,
+            pathName: t,
+            person: n,
+            role: e.role || "audience"
+        }));
+        return o.initRoom().then(()=>o)
+    }
+};

+ 88 - 0
src/main.js

@@ -0,0 +1,88 @@
+import Xverse from "./Xverse.js"
+
+const xverse = new Xverse({
+    env: "DEV",
+    appId:10016,
+    releaseId:'2203120033_29769e'
+});
+
+const l = async()=>{
+    var R;
+
+    try {
+        await ((R = xverse.preload) == null ? void 0 : R.start(P, (M,x)=>{
+            const I = `(${M}/${x})`;
+            s(I)
+        }
+        ))
+    } catch (M) {
+        if (console.error(M),
+        M.code === Codes.PreloadCanceled) {
+            toast("\u9884\u52A0\u8F7D\u88AB\u53D6\u6D88");
+            return
+        }
+        toast("\u8FDB\u5165\u5931\u8D25, \u8BF7\u91CD\u8BD5");
+        return
+    }
+
+    try {
+        room = await xverse.joinRoom({
+            canvas: f,
+            skinId: v,
+            avatarId: g,
+            roomId: d,
+            userId: _,
+            wsServerUrl: C,
+            appId: m,
+            token: " ",
+            nickname: _,
+            firends: ["user1"],
+            viewMode: "full",
+            resolution: T,
+            pathName: y,
+            objectFit: b,
+            hasAvatar: !0,
+            syncToOthers: !0
+        }),
+        u(),
+        c(),
+        window.room = room,
+        e(!1)
+    } catch (M) {
+        console.error(M),
+        alert(M);
+        return
+    }
+}
+
+const u = ()=>{
+    room.on("_coreClick", ({point: f})=>{
+        room._userAvatar.moveTo({
+            point: f
+        })
+    }
+    )
+}
+
+const c = ()=>{
+    room.on("repeatLogin", function() {
+        toast("\u8BE5\u7528\u6237\u5DF2\u7ECF\u5728\u5176\u4ED6\u5730\u70B9\u767B\u5F55", {
+            duration: 1e4
+        })
+    }),
+    room.on("reconnecting", function({count: f}) {
+        toast(`\u5C1D\u8BD5\u7B2C${f}\u6B21\u91CD\u8FDE`)
+    }),
+    room.on("reconnected", function() {
+        toast("\u91CD\u8FDE\u6210\u529F")
+    }),
+    room.on("disconnected", function() {
+        const f = toast("\u8FDE\u63A5\u5931\u8D25\uFF0C\u624B\u52A8\u70B9\u51FB\u91CD\u8BD5", {
+            duration: 1e5,
+            onClick() {
+                f.hideToast(),
+                room.reconnect()
+            }
+        })
+    })
+}

+ 10 - 0
src/util.js

@@ -0,0 +1,10 @@
+var util = {
+    uuid() {
+        return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, i=>{
+            const e = Math.random() * 16 | 0;
+            return (i === "x" ? e : e & 3 | 8).toString(16)
+        }
+        )
+    }
+}
+export default util