标签: arraybuffer

scala ArrayBuffer使用谓词删除所有元素

Scala在过滤不可变序列方面非常优雅:

var l = List(1,2,3,4,5,6)
l = l.filter(_%2==1)
Run Code Online (Sandbox Code Playgroud)

但是我如何使用像ArrayBuffer这样的可变集合呢?我发现的只是删除单个元素或切片,或从另一个序列中删除元素,但没有删除谓词给出的元素.

编辑:我希望找到类似的东西:

trait Removable[A] extends Buffer[A]{ 
  def removeIf(p: A => Boolean){
    var it1 = 0
    var it2 = 0

    while(it2 < length){
      if( p( this(it2) ) ){
        it2 += 1;
      } 
      else {
        this(it1) = this(it2)
        it1 += 1;
        it2 += 1;
      }
    }

    trimEnd(it2-it1)
  }
}
Run Code Online (Sandbox Code Playgroud)

这个过滤器在线性时间内可以混合到任何缓冲区中,但只有ArrayBuffer才有意义,在ListBuffers上它会很慢,因为索引确实需要线性时间.

scala arraybuffer

5
推荐指数
1
解决办法
3513
查看次数

ArrayBuffers的最大长度是多少?

我在这里有点困惑.ArrayBuffer为它分配一个新的内存区域吗?如果是这样,那么安全的最大Blob大小是什么?

javascript filereader arraybuffer

5
推荐指数
3
解决办法
5048
查看次数

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

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

reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function(e) {
   xhr.send(e.target.result);
} 
Run Code Online (Sandbox Code Playgroud)

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

有什么建议?

javascript flash filereader fileapi arraybuffer

5
推荐指数
0
解决办法
410
查看次数

在 Web Audio 中播放原始音频 PCM 样本

我有一组声音样本(16 位):

[0, 120, 320, 120, 0, -100, -30000, 65, 2, 3, 10, ...]
Run Code Online (Sandbox Code Playgroud)

它们的范围是 -32768 到 32767。我希望能够使用 Web Audio API 播放样本。

我知道它希望源缓冲区是一个ArrayBuffer,但我无法弄清楚如何将一堆样本转换ArrayBuffer为要使用 Web Audio API 播放的 。

有小费吗?

javascript audio buffer arraybuffer web-audio-api

5
推荐指数
1
解决办法
1805
查看次数

在 Nodejs 中从 ArrayBuffer 创建图像

我正在尝试从 ArrayBuffers 块创建图像文件。

all= fs.createWriteStream("out."+imgtype);

for(i=0; i<end; i++){
    all.write(picarray[i]);
}

all.end();
Run Code Online (Sandbox Code Playgroud)

其中picarray包含 ArrayBuffer 块。但是,我收到错误
TypeError: Invalid non-string/buffer chunk

如何将 ArrayBuffer 块转换为图像?

javascript file node.js arraybuffer

5
推荐指数
1
解决办法
1万
查看次数

缓冲的 SourceBuffer 不更新长度

在下面的代码中,console.log(sb.buffered) 给了我一个长度为 0 的 TimeRanges 对象。这是为什么?我检查了 xhr.response 是什么,它是一个大约 58000 byteLength 的 ArrayBuffer。

var ms;
var sb;
var mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';

function example() {
  ms = new MediaSource;
  var video = document.querySelector('video');
  video.src = URL.createObjectURL(ms);
  ms.addEventListener('sourceopen', function() {
    sb = ms.addSourceBuffer(mimeCodec);
    fetch('test0.mp4');
  }, false);
}

function fetch(url) {
  var xhr = new XMLHttpRequest;
  xhr.open('get', url);
  xhr.responseType = 'arraybuffer';
  xhr.onload = function() {
    if (ms.readyState === 'open') {
      sb.appendBuffer(xhr.response);
      sb.addEventListener('updateend', function() {
        console.log(sb.buffered);
      });
    }
  };
  xhr.send();
}
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest html5-video arraybuffer media-source

5
推荐指数
0
解决办法
552
查看次数

为什么通过WebRTC发送的消息有时会以不同的顺序收到?

我将ordered set设置为true,但是如果在短时间内(<1秒)发送了许多(1000或更多)消息,则收到的消息不会以相同的顺序接收.

rtcPeerConnection.createDataChannel("app", {
   ordered: true,
   maxPacketLifeTime: 3000
});
Run Code Online (Sandbox Code Playgroud)

如果需要,我可以提供一个最小的例子来重现这种奇怪的行为.

我还使用bufferedAmountLowThreshold和相关事件来延迟发送缓冲量太大.我选择2000但我不知道最佳数字是多少.我在短时间内收到如此多邮件的原因是因为我不想溢出一次发送的最大数据量.所以我将数据分成800字节包并发送.我再次不知道1条消息的最大大小是多少.

const SEND_BUFFERED_AMOUNT_LOW_THRESHOLD = 2000; //Bytes
rtcSendDataChannel.bufferedAmountLowThreshold = SEND_BUFFERED_AMOUNT_LOW_THRESHOLD;
const MAX_MESSAGE_SIZE = 800;
Run Code Online (Sandbox Code Playgroud)

对于未分成太多消息的小数据,一切正常.仅对大文件随机发生错误.

arraybuffer webrtc rtcdatachannel

5
推荐指数
1
解决办法
350
查看次数

如何将数组缓冲区数据与字符串/json 一起发送到 NodeJS 服务器

我需要在一个请求中将图像数据(读取为数组缓冲区)以及页面生成的其他字符串/json 信息发送到 NodeJS 服务器。我需要在一个请求中处理这两个部分,因为服务器的进一步图像处理取决于一起发送的字符串/json。有什么方法既可以通过客户端发送这些内容,又可以通过服务器解析它们以符合这些标准?

javascript node.js arraybuffer

5
推荐指数
1
解决办法
6961
查看次数

HTML5 视频流数组缓冲区

服务器将视频作为 arrayBuffers 发送并使用 websockets 将它们流式传输到客户端。在客户端,我实时接收 arrayBuffers。那么,有没有办法通过 HTML5 视频标签使用这些 arrayBuffers 启动视频流?

数组缓冲区示例:

在此处输入图片说明

javascript stream video-streaming websocket arraybuffer

5
推荐指数
0
解决办法
2327
查看次数

如何使用`js_of_ocaml`从`bytes`生成`ArrayBuffer`

我正在构建一个在Ocaml中实现并使用编译为JavaScript的JavaScript库js_of_ocaml.

我的一个Ocaml函数返回string带有二进制数据的函数.我怎么可以公开使用js_of_ocamlArrayBuffer

javascript string ocaml arraybuffer js-of-ocaml

5
推荐指数
1
解决办法
111
查看次数