123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- // 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);
- };
|