将Float32Array转换为Int16Array [英] Convert Float32Array to Int16Array

查看:894
本文介绍了将Float32Array转换为Int16Array的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找转换 Float32Array 进入 Int16Array

这就是我所拥有的(我不提供数据)。

Here's what I have (i'm not providing 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);
  }

我不相信我做得正确并且正在寻找一些方向。

I'm not convinced that I'm doing it correctly and looking for some direction.

推荐答案

您可以直接从 ArrayBuffer

var dataAsInt16Array = new Int16Array(data.buffer);







var f32 = new Float32Array(4);
f32[0] = 0.1, f32[1] = 0.2, f32[2] = 0.3, f32[3] = 0.4;
// [0.10000000149011612, 0.20000000298023224, 0.30000001192092896, 0.4000000059604645]

var i16 = new Int16Array(f32.buffer);
// [-13107, 15820, -13107, 15948, -26214, 16025, -13107, 16076]

// and back again
new Float32Array(i16.buffer);
// [0.10000000149011612, 0.20000000298023224, 0.30000001192092896, 0.4000000059604645]

这篇关于将Float32Array转换为Int16Array的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆