gpt4 book ai didi

javascript - 无法在分离的 ArrayBuffer 上执行 ArrayBuffer.prototype.slice

转载 作者:太空宇宙 更新时间:2023-11-04 16:15:58 24 4
gpt4 key购买 nike

我正在尝试使用 .slice()ArrayBuffer 创建 Blob,因为我需要复制 ArrayBuffer > 因为我知道它将来会被我无法控制/想要更改的代码更改(其 byteLength 将为 0)。

new Blob([data2.payload.slice()], {type: "video/MP2T"})

我收到错误

Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

在 Windows 7 x64 上。

还有其他方法可以复制ArrayBuffer吗? This way not does actual copy , other ways does not seems to be pretty straightforward .

ArrayBuffer.transfer()看起来不错,但是他们的 polyfill 产生错误

Source and destination must be ArrayBuffer instances

最佳答案

这是我的错,我一直被不清楚的错误消息搞糊涂了,在这种情况下什么也做不了,因为在Blob创建data2.payload的那一刻已经有了字节长度:0

在通常情况下

var from = new ArrayBuffer(0);
var to = from.slice();
var to = from.slice(0);

to 将是带有 byteLength: 0ArrayBuffer,在这种情况下会触发错误,因为在 data2.payload 之前code> 传递给我的代码,它在 Web Worker 中进行了修改,为了避免在主线程和 Web Worker 之间复制片段,data2.payload 所有权转移给了 Worker。

关于javascript - 无法在分离的 ArrayBuffer 上执行 ArrayBuffer.prototype.slice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41082427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com