Con*_*ick 5 javascript floating-point audio 16-bit
我在 Float32Arrays 中获取 PCM 音频样本。但我的应用程序只能支持 16 位长度的数据,所以我需要转换。
我不知道如何做到这一点,因为 Float16Array 没有类型化数组,而且我从未处理过位级别的数据。有人可以解释或展示如何做到这一点吗?
首先,JavaScript 是动态类型的,没有类型长度/大小的概念。
在本机平台内部可以使用什么类型大小是运行时的问题,但这并不一定限制可能的值,即在 JavaScript 运行时环境中模拟的类型长度(如果您愿意的话)。
另外,您可能需要 16 位 int 才能将其传递给音频设备。会更有意义。
因此,我将您的问题缩小为:如何在 JavaScript 中将 float 转换为 int ,答案就在这里: How do I conversion a float number to a full number in JavaScript?
但是如果你真的想转换你的值的精度:你可以做的就是乘以 X,然后舍入(“转换为 int”,请参阅上面的链接),然后再次除以 X。但这与转换不同一种大小的浮点数到另一种大小的浮点数,因为您没有考虑实际内存中浮点数的尾数/指数表示。我的解决方案只会降低一些精度(如果你愿意的话,可以进行量化)。
不管怎样,JavaScript 不是一个处理类型内存表示的平台;它是一个平台。它已经足够混乱,无法处理 float 和 int 之间的差异;)
| 归档时间: |
|
| 查看次数: |
4694 次 |
| 最近记录: |