前端利用ffmpeg出现ReferenceError: SharedArrayBuffer is not defined解决 ...

打印 上一主题 下一主题

主题 1061|帖子 1061|积分 3183

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题缘故原由:

“SharedArrayBuffer is not defined” 错误是因为在浏览器环境中,SharedArrayBuffer 对象被认为是一种潜在的安全风险。为了防止 Spectre 攻击等弊端,现代浏览器通常会禁用或限制对 SharedArrayBuffer 的利用
SharedArrayBuffer 是一种 JavaScript 对象,用于在多线程环境中共享内存。然而,由于共享内存的特性,它可能导致安全弊端。攻击者可以通过操纵共享内存来实验恶意代码,因此大部分浏览器对其举行了限制
具体问题详情可参考这篇文文章:https://juejin.cn/post/7065181402848837662#heading-0
解决办法:

本地运行解决方案:  
在vue.config.js中的devServer中设置请求头:
  1.   devServer: {
  2.     headers: {
  3.       // 如果需要用到ffmpeg合并视频,需要将COEP和COOP打开,来确保ShareArrayBuffer能够正常使用
  4.       'Cross-Origin-Embedder-Policy': 'require-corp',
  5.       'Cross-Origin-Opener-Policy': 'same-origin',
  6.     }
  7.   }
复制代码
在vite.config.js中的devServer中设置请求头:
  1. server: {
  2.     headers: {
  3.       'Cross-Origin-Opener-Policy': 'same-origin',
  4.       'Cross-Origin-Embedder-Policy': 'require-corp'
  5.     },
复制代码
生产环境运行解决方案:

vue路由要利用mode: "hash"的方式;
nginx摆设,为指定路由加上请求头
  1. location /ffmpeg {
  2.     root   html/dist;
  3.     index  dolphin-ffmpeg.html;
  4.     add_header Cross-Origin-Opener-Policy same-origin;
  5.     add_header Cross-Origin-Embedder-Policy require-corp;
  6. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表