问题标签 [arraybuffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3576 浏览

javascript - 使用 Crypto.JS 解密 AES 加密的二进制文件

我想要达到的目标

我正在开发一个基于浏览器的问答游戏,其中包含预先录制的音频线索,这些线索会发送给用户。为了承担服务器的负载以及已经传输的音频,文件已经在游戏开始之前提前发送给用户。由于游戏是实时和竞争性的,重要的是玩家之前没有机会收听音频文件。我现在的想法是基本上将 AES 加密文件发送给用户,仅通过 websockets 实时发送文件的密码,在浏览器中使用crypto.js对其进行解密并立即播放。

问题

出于某种原因,我无法使用 crypto.js 正确解密二进制文件,因此我可以将其提供给音频上下文的 decodeAudioData。我从解密或胡言乱语中得到空回复。

我试过的

音频(在本例中为 mp3)根据文档使用以下调用进行了 AES 加密:

然后通过带有请求类型文本的 XMLHTTPRequest 加载生成的文件(我已经尝试过 arraybuffer,但也失败了),结果存储在变量 ( this.protectedBuffer) 中。

根据 Crypto.js 文档,现在应该解密文件:

然而,这会导致无法播放,并且只返回一个单词表。我知道我错过了一些步骤,但我现在完全不知道什么不起作用,如果有人能指出我正确的方向并告诉我我做错了什么,我会非常高兴。

编辑:这是一个 jsfiddle 我想要实现的目标http://jsfiddle.net/HKu3n/1/

0 投票
0 回答
511 浏览

javascript - 非 HTML5 浏览器使用 XMLHttpRequest 发送原始文件内容

有没有办法读取文件的原始文件内容并使用 XMLHttpRequest ajax 请求将二进制数据发送到服务器?在 HTML5 浏览器中,我可以这样做:

有一些库,如FileAPIFileReader polyfill,但它们都不支持readAsArrayBuffer(),如果我使用readAsBinaryString()二进制数据,在转换为字符串时会搞砸,并且会在内容中添加额外的字符。

有什么建议么?

0 投票
1 回答
1331 浏览

javascript - InternetExplorer 中的图像数据集

我有一个数组缓冲区 - 命名MEM- 大于画布宽度 * 高度大小。我想将 arrayBuffer 数据绘制到画布上。

imgData.data.set(...)应该可以工作,因为 imgData.data 是一个 Uint8Array,它具有 .set 方法。它适用于 FireFox 和 Chrome,但在 IE 中我收到此错误:Object doesn't support this property or method: 'set'

初始化:

重绘功能:

0 投票
1 回答
274 浏览

javascript - 将 ArrayBuffer 类型的结果存储在 Javascript 中的数组中

我正在使用 HTML5 FileReader 和 File API 制作离线音乐播放器。这还包括一个基本的播放列表功能。

现在,当用户选择多个文件时,我将这些文件作为 ArrayBuffer 检索。

问题是,我想将这些返回的文件存储到一个普通数组中,以便以后可以在播放列表中使用它们。

我怎样才能在 Javascript 中实现这一点?

0 投票
1 回答
786 浏览

javascript - 如何在此 ArrayBuffer 设置中将数据填充到 Float64Array

我有这个原始数据:

我想把它们放到这个 ArrayBuffer 中:

我可以使用这种方法将数据填充到 Float32Array 中:

如何使用与上述类似的方法将数组 x 的值设置为 Float64Array。所以我可以得到这样的东西:

谢谢,

0 投票
1 回答
3517 浏览

javascript - 如何快速将像素从数组缓冲区绘制到画布?

我有一个 asmjs 模块,它适用于一个ArrayBuffer名为“MEM”的模块。在每个循环中都会调用 repaint 函数。在第一个“大小”字节中是存储的像素颜色。我的代码有效,但运行缓慢。是否有可能以某种方式使其更快?数组缓冲区不能是“大小”长度,因为该模块适用于整个 ArrayBuffer。

0 投票
3 回答
19379 浏览

javascript - 将画布内容序列化为 ArrayBuffer 并再次反序列化

我有两个画布,我想把canvas1的内容传过来,序列化成一个ArrayBuffer,然后加载到canvas2中。以后我会把canvas1的内容发送到服务器,处理,然后返回canvas2,但是现在我只想序列化和反序列化。

我发现这种以字节为单位获取画布信息的方法:

并且还发现了将信息设置为Image对象的这种方式:

但不幸的是,它似乎不起作用。

哪种方法是正确的?

0 投票
1 回答
371 浏览

javascript - 为什么我不能在 ASM.js 中使用 32 位整数数组?

这段代码在 Firefox 中运行良好 - 尽管出于某种原因,将 Uint8Array 更改为 Uint32array 会中断。在这种情况下,我是否需要以不同的方式强制数字?

还有一件事 - 是否可以发送一个数组缓冲区,并引用它产生的最终数组,也可以使用 C++ emscriptem 编译的 asm.js?

0 投票
0 回答
579 浏览

javascript - 如何使用php将arraybuffer写入数据库

我使用带有函数createAnalyser()的 javascript 为 mp3 曲目创建可视化,但获取缓冲区的过程太长。

因此,我打算将缓冲区写入数据库,播放歌曲时提取缓冲区更快,这是我的想法。

在我的代码中,我XMLHttpRequest()用来接收arraybuffer来自 mp3 文件,但我不知道如何放入arraybuffer数据库。

这是我的 PHP 代码:

请帮我!

0 投票
1 回答
323 浏览

scala - scala Nil 类型与 arraybuffer 匹配

我在 scala 中发现了一个奇怪的工作结构:

返回

显然这已经部分适用于 Vectors,但不适用于模式匹配。有人可以解释一下吗?Nil 没有任何名为 unapply 的方法。这怎么可能?