web端项目想通过接口拿到视频文件,但是显示执行到sourceBuffer.appendBuffer的时候报错了,不知道为什么???
这是渲染视频的逻辑
onMounted(() => { const video = document.querySelector('#homeVideo') const mediaSource = new MediaSource() video.src = URL.createObjectURL(mediaSource) mediaSource.addEventListener('sourceopen', () => { const sourceBuffer = mediaSource.addSourceBuffer( 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"' ) getBackgroundNormal().then((data) => { sourceBuffer.appendBuffer(data) }) })})
这是前端api接口
const getBackgroundNormal = () => { return api({ method: 'get', url: 'backgroundVideoNormal', headers: { responseType: 'arraybuffer' } })}
这里是我自己写的node返回视频文件的接口
router.get('/backgroundVideoNormal', async (ctx) => { const video = fs.readFileSync(path.join(__dirname, 'bk.mp4')) ctx.type = 'video/mp4' ctx.body = video })
尝试了下面朋友的方法
export const getBackgroundNormal = () => { return api({ method: 'get', url: 'backgroundVideoNormal', headers: { responseType: 'arraybuffer' } }).then((res) => res.data)}onMounted(() => { const video = document.querySelector('#homeVideo') const mediaSource = new MediaSource() video.src = URL.createObjectURL(mediaSource) mediaSource.addEventListener('sourceopen', () => { if (mediaSource.readyState === 'open') { const sourceBuffer = mediaSource.addSourceBuffer( 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"' ) getBackgroundNormal().then((data) => { sourceBuffer.appendBuffer(data) }) } })})
还是会报一样的错误
API接口:
const getBackgroundNormal = () => { return api({ method: 'get', url: 'backgroundVideoNormal', headers: { responseType: 'arraybuffer' } }).then(response => response.data)}
检查MediaSource.readyState属性:
mediaSource.addEventListener('sourceopen', () => { if (mediaSource.readyState === 'open') { const sourceBuffer = mediaSource.addSourceBuffer( 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"' ) getBackgroundNormal().then((data) => { sourceBuffer.appendBuffer(data) }) }})
在使用 nuxt 时,nuxt 可以使用 usefetch 进行请求,底层的实现是 ofetch 这个库,这个库支持在服务器端和客户端进行请求,nuxt 做了优化,如果服务器端有请求过的数据会序列化传输到客户端,这样客户端在水合时就不用再发起请求。而在使用 nextjs 时,使用的是 fetch 进行请求,nextjs 对 fetch 进行了扩展,增加了缓存的功能,但是我发现这个扩展的 fetch
根据数据库里面获取到的数据信息渲染表格,起初根据数据结构生成了四列,但是由于后续数据库里面会有数据结构上的变化,会增加字段,那我要如何在表格中去追加这部分新数据,从而在前端渲染出一个新的表格————就是说原来四列变六列,并把对应数据也一同渲染上去。
我使用了fetch方法向后端发送了一个请求,获取到了返回数据之后 ,该数据是一个对象类型的,我如何批量创建li到该ul中呢?li中要对应对象的属性 后端数据格式
我正在尝试将过滤器(如Instagram的过滤器)应用于现有视频。 我使用GLSURFACHEVIEW显示视频帧,并希望通过对传入帧应用特定过滤器,使用onDrawFrame()渲染每个帧。 但是在onDrawFrame()中,如何获取传入帧? 谢谢
用的vue3 和element plus,在代码中 每次code1获取到的值都是上一次存入的值,网上搜说是因为异步的关系,具体应该怎么修改请大佬指导!
我正在努力熟悉Java的LWJGL库,我一直在线学习一些教程,我似乎无法渲染模型。 我使用的是OpenGL 2.1(这似乎非常过时,但我不知道如何更新它,我知道它与你的硬件捆绑在一起,如果有人对我的规格感兴趣,我使用的是MacBook Pro 2017型号) 如果有人能看看我的代码,告诉我哪里做错了,我会非常感激!(现在呈现的只是一个红色窗口) 从我研究过的来源来看,这段代码应该会产生一个由两个三