// const decoderWorker = new Worker("./worker/decoderWorker.js"); import { decodeMessage } from "./decodeMessage.js"; var worker = ` const Events = { DecodeMessage: 0, UpdateStats: 1, WASMReady: 2, CacheFrame: 3, RecordVideo: 4, OnlyEmitSignal: 5, WASMReadyCost: 6, PanoramaMessage: 7, RequestIFrame: 8, ConsoleLog: 9, ConsoleError: 10, }; const printConsole = { log: (msg) => self.postMessage({ event: Events.ConsoleLog, printMsg: msg }), error: (msg, code) => self.postMessage({ event: Events.ConsoleError, printMsg: msg, code: code }), }; class Decoder { constructor() {} loadWASM(url) { printConsole.log("Load WASM from " + String(url)); try { self.importScripts(url); } catch (e) { printConsole.error(e.message, "5003"); } } } if ("function" === typeof importScripts) { printConsole.log("22222"); } self.decoder = new Decoder(); self.onmessage = (event) => { switch (event.data.event) { case 0: self.postMessage({}); break; case 9: self.decoder.loadWASM(event.data.url); printConsole.log("loadWASM"); default: break; } }; `; // const decoderWorker = new Worker('./decoderWorker.js"'); const webworkBlob = new Blob([worker], { type: "application/javascript", }); const decoderWorker = new Worker(URL.createObjectURL(webworkBlob)); const workEvents = { DecodeMessage: 0, UpdateStats: 1, WASMReady: 2, CacheFrame: 3, RecordVideo: 4, OnlyEmitSignal: 5, WASMReadyCost: 6, PanoramaMessage: 7, RequestIFrame: 8, ConsoleLog: 9, ConsoleError: 10, }; decoderWorker.postMessage({ event: 9, url: "https://static.xverse.cn/wasm/v15/lib_ff264dec_no_idb_with_wasm_tbundle.js?tbundle=tmeland_base", jitterLength: 0, }); console.log("decoderWorker", decoderWorker); decoderWorker.onmessage = (event) => { // console.log("Message received from worker", event); switch (event.data.event) { case workEvents.decodeMessage: decodeMessage(event); break; case workEvents.ConsoleLog: console.log(event.data.printMsg); break; case workEvents.ConsoleError: console.error(event.data.code); break; } }; decoderWorker.onerror = (event) => { console.log("event", event); };