我正在尝试在 react 应用程序中加载 ffmpeg.wasm 来做一个小型视频转换器项目。该代码在 chrome 上运行良好,但在 Firefox 开发版(83.0b)中我发现以下错误:
ReferenceError: SharedArrayBuffer is not defined
这是捕获错误的组件部分(变量 ready 永远不会变为 true):
import React, { useState, useEffect } from 'react'
import styles from './App.module.css'
import { createFFmpeg, fetchFile } from '@ffmpeg/ffmpeg'
const ffmpeg = createFFmpeg({ log: true })
function App() {
// load state
const [ready, setReady] = useState(false)
// files state
const [video, setVideo] = useState('')
const [gif, setGif] = useState()
// UI state
const [dragOver, setDragOver ] = useState(false)
const [nOfEnters, setNOfEnters] = useState(0)
const load = async () => {
try {
await ffmpeg.load()
setReady(true)
} catch(error) {
console.log(error)
}
}
useEffect(() => {
load()
}, [])
在此先感谢,让我知道是否应该提供更多详细信息。
最佳答案
尝试在服务器响应中添加这些 header :
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
您可以在这里找到一些详细信息:https://web.dev/coop-coep/
关于firefox - 如何在 Firefox 中使用 ffmpeg.wasm 而不获取 SharedArrayBuffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64962224/