在 JavaScript 中将 float 值转换为 uint8 数组

2023-12-14

我有一个 Float32Array,其中包含音频文件中的值。我想将其保存为 .wav 文件,因此我需要将该值转换为 Uint8array。

为了从 uint8 转换为 float,我首先转换为 int16 数组,然后转换为 Float32Array (将 int16 数组转换为 float) 我怎样才能在另一个方向上进行转换?


您可以转换为ArrayBuffer,将数据复制到该缓冲区,然后创建该缓冲区的字节视图:

var data = new Float32Array([0.1, 0.2, 0.3]);

var buffer = new ArrayBuffer(data.byteLength);
var floatView = new Float32Array(buffer).set(data);
var byteView = new Uint8Array(buffer);

此函数可以将任何 TypedArray 转换为任何其他类型的 TypedArray :

function convertTypedArray(src, type) {
    var buffer = new ArrayBuffer(src.byteLength);
    var baseView = new src.constructor(buffer).set(src);
    return new type(buffer);
}

例子 :

convertTypedArray(new Float32Array([0.5, 0.3, -0.1]), Uint8Array);

Edit

正如伊恩在评论部分指出的那样,您可以访问ArrayBuffer with TypedArray.buffer,所以你可以简单地执行以下操作:

var byteArray = new Uint8Array(floatArray.buffer);

请注意,执行此操作时,byteArray and floatArray将共享相同的缓冲区,因此修改byteArray将修改floatArray反之亦然。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JavaScript 中将 float 值转换为 uint8 数组 的相关文章

随机推荐

  • 何时计算静态数组的长度? [复制]

    这个问题在这里已经有答案了 type TMyArray array 0 255 of Integer var Arr TMyArray Writeln Length Arr When is Length 当传递静态数组时在此上下文中求值 它
  • 如果行值重复,则将其替换为空字符串

    如果发现重复值 是否可以用空字符串替换行值 例如 SELECT ProductCode Color FROM Product ProductCode Color 00A0B Red 00A0B Blue 00A0C Red 00A0C Bl
  • 将 PyInstaller 用于 Matplotlib 脚本后出错

    在我的代码中我使用 import matplotlib pyplot as plt import matplotlib image as mpimg 当我构建 py 脚本时 一切正常 但是使用 pyinstaller exe 获取可执行文件
  • 如何从MSTest获取测试结果状态?

    在 NUnit 中 我可以从以下位置获取测试结果context Result State 如果它是NUnit Framework TestState Success 那么我就知道测试通过了 在 MSTest 中 我如何获取该信息 I saw
  • “await”运算符只能在异步 lambda 表达式中使用

    我有一个 C Windows 应用商店应用程序 我正在尝试启动一个MessageDialog当其中一个命令按钮位于另一个命令按钮内时MessageDialog被点击 这样做的目的是警告用户他们的内容尚未保存 如果他们单击 取消 则会提示他们
  • Salesforce 中的 Web 选项卡

    我想知道我应该如何处理以下问题 我想要做的是在 salesforce 选项卡中显示我们的数据表 表数据将来自我们商店中的数据库 我还希望能够在搜索销售人员帐户时将数据传递到页面 选项卡 以查找信息 这可能吗 如果是这样 关于如何完成这项工作
  • 循环访问 VBA 用户窗体中的复选框控件

    我有一个 Excel VBA 中的用户表单 每个月都有一个复选框 选择一个或多个会导致所需的月份显示在工作表上 我将代码复制粘贴了 12 次并且它有效 但我确信有更好的方法For loop 这是我的代码的一部分 它持续了 12 次 If C
  • 绑定与箭头函数(在 JavaScript 中,或用于响应 onClick)

    所以我正在努力学习JavaScript and or react理解有点混乱 bind this 在构造函数中 然而 我想现在明白了 只是想知道 为什么有人会使用 Binding 与 Arrow functionJavaScript 或在o
  • 如何在 Android 中将默认 Facebook 应用程序登录会话添加到我们的应用程序中?

    我想从我的应用程序登录 Facebook 并且我已经成功完成了 但我希望 如果 Facebook 默认应用程序在我的设备中并且我已经登录 那么它会自动登录到我的应用程序 我无法理解如何获得默认的 Facebook 登录会话 如果有人有任何想
  • 了解边距折叠

    我已经成功地将 h2 元素的边距包含在其容器 section 元素 中 这样它就不会与 p 元素的边距一起折叠 我已经通过设置来完成此操作overflow节元素的auto 我的问题是 由于元素与overflow设置为除visible不能让它
  • php中curl如何发送参数

    我如何在curl php中编写以下命令 卷曲 XPOSThttps apiv2 unificationengine com v2 message send 数据 消息 接收者 姓名 TO NAME 地址 TO EMAILADDRESS 连接
  • CSS 媒体查询可检测设备类型(无论大小)

    我一直在研究媒体查询 但到目前为止 我在谷歌和 Stack Overflow 上找到的所有示例都是使用特定尺寸 max width max device width等 这样做的问题是它没有给我所需的灵活性 我希望能够为台式机和平板电脑提供
  • Firefox SDK 示例附加导出的 XPI 操作按钮不显示

    所以我在这里遵循文档 教程 https developer mozilla org en US Add ons SDK Tutorials Getting started 当我使用 cfx run 时 该插件显示正确 但当我导出到 xpi
  • 移动和消失的代码行; Eclipse 的 XML 编辑器出现问题

    有时我的代码会自行移动或直接消失在 Eclipse XML 编辑器中 当我突出显示受影响的代码时 突出显示的行会尝试自行更正 但是 当我向相反方向滚动或拖动鼠标时 代码会再次发生变化 本质上我会重复 缺失 and从原本没有错误的文件中显示断
  • 以编程方式创建 Azure 推送通知中心

    MSDN 文档中写道 Azure 支持将通知中心作为 Microsoft ServiceBus dll 程序集中的 Azure SDK 2 1 的一部分 您现在可以以编程方式创建 更新和删除通知中心 管理设备注册 以及向所有平台 Windo
  • 使用 mongoDB 创建递增数字

    我们有一个订单系统 每个订单都有一个 ID 出于会计目的 我们需要一种方法来生成数字递增的发票 在不使用 sql 数据库的情况下执行此操作的最佳方法是什么 我们正在使用节点来实现该应用程序 http www mongodb org disp
  • Chromedriver 76 破坏了我的测试套件“javascript 错误:循环引用”

    现在 每当我尝试单击公司 Web 应用程序上的任何元素时 都会收到 javascript 错误 循环引用 会话信息 chrome 76 0 3809 100 这是在以前的 chromedriver 版本上运行良好的代码 我已经尝试了链接到的
  • python pandas - 使用 for 循环编辑多个 DataFrame

    考虑以下 2 个包含 3 个字典和 3 个空 DataFrame 的列表 dict0 actual 2013 02 20 13 30 00 0 93 dict1 actual 2013 02 20 13 30 00 0 85 dict2 a
  • Linux 内核需要多少条指令才能处理 ARM Cortex A9 上的中断?

    我想估计一下需要的操作码数量ARM cortex A9单核处理IRQ 假设我使用 Linux 内核3 4 调用需要多少个操作码irq并执行irq handler 您的问题与如何计算有关中断延迟Linux 的 至少您可能会对中断开始之前需要多
  • 在 JavaScript 中将 float 值转换为 uint8 数组

    我有一个 Float32Array 其中包含音频文件中的值 我想将其保存为 wav 文件 因此我需要将该值转换为 Uint8array 为了从 uint8 转换为 float 我首先转换为 int16 数组 然后转换为 Float32Arr