小编Nir*_*kku的帖子

将Float32Array转换为Int16Array

我正在寻找将Float32Array转换为Int16Array.

这就是我所拥有的(我没有提供data).

  var data = ...; /*new Float32Array();*/
  var dataAsInt16Array = new Int16Array(data.length);
  for(var i=0; i<data.length; i++){
    dataAsInt16Array[i] = parseInt(data[i]*32767,10);
  }
Run Code Online (Sandbox Code Playgroud)

我不相信我正确地做到了并且正在寻找一些方向.

javascript typed-arrays

6
推荐指数
2
解决办法
4847
查看次数

将数据追加到已经存在的AudioBuffer对象

我期待数据追加到已经存在的AudioBuffer正在被使用的网络音频播放。


接收到要播放的音频数据后,我将创建一个AudioBuffer,然后将数据分配给ArrayBuffer响应。

    var audioBuffer = context.createBuffer(1, audioToPlay.length, 16000);
    audioBuffer.getChannelData(0).set(audioToPlay);
Run Code Online (Sandbox Code Playgroud)

然后,我创建一个缓冲区源节点,并将音频缓冲区连接到Web音频上下文。

    var source = context.createBufferSource();
    source.buffer = audioBuffer;
    source.connect(context.destination);
    source.start(0);
Run Code Online (Sandbox Code Playgroud)

现在,我想做的是将更多数据(另一个ArrayBuffer)追加到当前正在播放的缓冲区中,同时避免必须使用onended回调来创建新的缓冲区。

有什么办法吗?据我所知,这似乎不受支持。

javascript audio web-audio-api

3
推荐指数
1
解决办法
1070
查看次数

标签 统计

javascript ×2

audio ×1

typed-arrays ×1

web-audio-api ×1