【问题标题】:How do I read out the first 4 bytes in javascript, turn it into an integer and remove the rest?如何读出 javascript 中的前 4 个字节,将其转换为整数并删除其余字节?
【发布时间】:2014-06-02 03:07:24
【问题描述】:

我需要通过互联网将网络摄像头数据从一个浏览器传输到另一个浏览器。

网络摄像头显示在HTML5 canvas 中。然后我得到它的dataUrl,然后把它变成blob。然后我将此 blob 发送到我的服务器。

据我了解,blob 本质上是byte array。我已经将它转换为服务器端的字节数组,它的长度与浏览器中的blob.size 相同,所以看起来很好。我需要给它添加一个发件人ID,所以我将一个整数转换为一个4 bytes的数组并将它添加到字节数组的前面。

现在我需要将此修改后的 blob 发送到其他浏览器。这就是我感到困惑的地方。

  1. 如何读出javascript中的前4个字节并再次将其转换为整数?
  2. 我该如何切断剩余的斑点?

【问题讨论】:

  • 使用 parseInt(someInt, base); 将 4bytes 转换为整数

标签: javascript html bytearray


【解决方案1】:

您可以使用 Blob.slice() 方法获取字节。
参见文档:https://developer.mozilla.org/en-US/docs/Web/API/Blob.slice

1)

var bytes = blob.slice(0,4);

2)

var arrayOfBytes = [];
for(var i=0;i<blob.size/4;i++){
    arrayOfBytes[i] = blob.slice(i*4,4+(i*4));
}

注意:我没有测试过!

【讨论】:

  • 哇,真快。非常感谢。验证后我会尝试并接受您的回答!
  • 对不起,如果 blob.slice(0,4) 给了我 blob 的前 4 个字节,我不能只使用 blob.slice(4,blob.size-1) 来获取其余部分吗?我不太明白你的 2)
  • @spacecoyote 当然可以。但是,如果您想接收全部字节,请不要传递最后一个参数:blob.slice(4) 第二个参数是 blob 的默认大小
猜你喜欢
  • 2022-05-11
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2023-01-18
  • 1970-01-01
  • 2013-02-04
  • 2021-01-01
  • 2019-11-11
相关资源
最近更新 更多