如何解决要求未在javascriptVueWorker
我正在使用Vue构建用于视频流的应用程序,我需要能够将h265解码器插入我的工作人员中以进行背景帧处理。目前它可以正常工作,但所有处理都在主UI线程中完成。
我面临的问题是,当我为后台处理new Worker
创建一个thread
时,无法导入需要用于图像处理的Web程序集文件。我一直在想办法2天了,但无济于事。
如何在工作人员中使用require
语句提取所需的wasm / js文件进行处理?现在尝试时,出现控制台错误:Uncaught ReferenceError: __webpack_require__ is not defined
** workerFile
export class DecoderWebWorker {
constructor() {
const lib = require('@/webAssembly/webasm.js').lib;
const decoder = lib('./webAssembly/webasm.wasm',() => {
console.log('lib loaded',decoder);
});
this.worker = new Work();
}
terminate() {
this.worker.terminate();
console.log('terminate worker');
}
}
class Work {
constructor() {
let code = this.worker.toString();
code = code.substring(code.indexOf('{') + 1,code.lastIndexOf('}'));
const blob = new Blob([code],{ type: 'application/javascript' });
return new Worker(URL.createObjectURL(blob));
}
worker() {
***THIS IS WHERE I NEED TO IMPORT DECODER FILES,instead of in the DecoderWebWorker class***
const lib = require('@/webAssembly/webasm.js').lib; <-------- throws error here
self.onmessage = event => {
console.log('Received message:',event.data);
self.postMessage(event.data);
};
}
}
我真的需要创建解码器实例,并在创建Worker时让其可以使用worker函数,但是我似乎找不到解决方法。解码器是具有属性和功能的巨大对象,因此我可以通过postMessage将其发送给工作程序,这会导致其自身的错误集,因为它不是arrayBuffer。
由于这是一个使用Webpack构建的Vue应用程序,所以也许有解决方案?我目前还没有其他解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。