【有偿】问一个JS ArrayBuffer 的问题

108次阅读

共计 665 个字符,预计需要花费 2 分钟才能阅读完成。

Nodejs 里面读取一个文件打印

  1. var buff = fs.readFileSync(‘test.mp4’)
  2. console.log(buff.buffer)

复制代码

buffer 是这样的

  1. ArrayBuffer {
  2.   [Uint8Contents]: <47 40 11 10 00 42 f0 25 00 01 c1 00 00 ff 01 ff 00 01 fc 80 14 48 12 01 06 46 46 6d 70 65 67 09 53 6
  3. 5 72 76 69 63 65 30 31 77 7c 43 ca ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff f
  4. f ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff … 2128624 more bytes>,
  5.   byteLength: 2128724
  6. }

复制代码

然后我把这个文件丢网上了,用 XMLHttpRequest 请求拿到 data , 这时候是 ArrayBuffer 对象,怎么拿到和如上这种二进制数据呢?貌似需要转换

网友回复:

注册 什么意思,arraybuffer 转成 buffer 还是 blob

1121744186 转成 buffer 吧 浏览器上 arraybuffer 打印结果不如 nodejs 里面这个 buffer 这么直观

xqdoo00o buffer 是 node js 的类型。浏览器只有 arraybuffer。不过你可以转成 uint8array 显示效果是一样的。new Uint8Array(arrayBuffer) 就好了

1121744186 不用了额,还以为是比较棘手的问题

正文完
 0