首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Javascript: UInt8Array到Float32Array

Javascript: UInt8Array到Float32Array
EN

Stack Overflow用户
提问于 2016-01-07 20:30:48
回答 2查看 9.3K关注 0票数 7

我有一些音频缓冲区在usigned 8位PCM格式,需要通过网络音频播放,其中只接受签名32位PCM。现在我有了ArrayBuffer来处理pcm_u8数据片段(来自Uint8array)。如何将其转换为Float32Array?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-07 20:56:43

此函数将ArrayBuffer转换为Float32Array。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var convertBlock(buffer) { // incoming data is an ArrayBuffer
    var incomingData = new Uint8Array(buffer); // create a uint8 view on the ArrayBuffer
    var i, l = incomingData.length; // length, we need this for the loop
    var outputData = new Float32Array(incomingData.length); // create the Float32Array for output
    for (i = 0; i < l; i++) {
        outputData[i] = (incomingData[i] - 128) / 128.0; // convert audio to float
    }
    return outputData; // return the Float32Array
}

此方法将Uint8Array转换为Float32Array

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var convertBlock(incomingData) { // incoming data is a UInt8Array
    var i, l = incomingData.length;
    var outputData = new Float32Array(incomingData.length);
    for (i = 0; i < l; i++) {
        outputData[i] = (incomingData[i] - 128) / 128.0;
    }
    return outputData;
}
票数 13
EN

Stack Overflow用户

发布于 2017-07-18 02:11:18

ECMAScript 2015及以后的TypedArray.from将任何类型化数组(以及任何可迭代的)转换为指定的类型化数组格式。

因此,现在将Uint8Array转换为Float32Array非常容易:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const intArray = new Uint8Array()
const floatArray = Float32Array.from(intArray)
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34669537

复制
相关文章
使用 JavaScript 自动化你的 Mac
系统自带的编写自动化脚本的工具是ScriptEditor。打开编辑器,把语言从 AppleScript切换到JavaScritp。接下来我们就来实战一下,写一个每天自动发新人日报邮件的自动化脚本。具体流程是这样的:
IMWeb前端团队
2019/12/04
2.4K1
使用 JavaScript 自动化你的 Mac
IMWeb前端团队
2017/12/29
3.2K0
使用ES6新特性开发微信小程序(4)
Symbol Type ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。 Symbol值通过Symbol函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的Symbol类型。凡是属性名属于Symbol类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。 let s =
极乐君
2018/02/05
1.8K0
【译】开始在web中使用CPU计算
本文是关于我使用实验性的WebGPU API并与有兴趣使用GPU进行数据并行计算的Web开发人员分享我的旅程。
腾讯IVWEB团队
2020/06/28
2K1
JavaScript中Array怎么用?
Array 是 JavaScript 的全局数组对象,其元素可以是不同类型,如果需要元素是同一类型,可使用 TypedArray。
Learn-anything.cn
2021/12/20
1.4K0
深度学习的JavaScript基础:矩阵和向量的表示
与Java、C++这样的静态类型语言不同,JS中的变量似乎没有类型,在声明变量时不用指定变量类型。但实际上JS也有字符串、数字、布尔值、对象、数组、未定义等类型,是一种弱类型语言。在深度学习中,矩阵和向量是最基本的数据结构,而高效的矩阵和向量运算是深度学习计算中的关键。在C++中,数组可用于表示矩阵或向量,JS中也有这样的数据结构吗?
云水木石
2019/12/18
2.3K0
Webassembly初识
首先,它是一种解释性语言,大神最开始的设计目标用户就是“非专业编程人员和设计师”,避免了非专业人士对编译器了解的需要,解释性语言就是边解释边执行,与编译性语言的先编译后执行相比,执行速度慢了很多;
CIKEY
2019/03/18
1.1K0
学废了系列 - WebGL与Node.js中的Buffer
WebGL 和 Node.js 中都有 Buffer 的使用,简单对比记录一下两个完全不相干的领域中 Buffer 异同,加强记忆。
寒月十八
2021/08/12
1.4K0
用Web音频API来做一个音频可视化工具
如果你曾经想过像MilkDrop这样的音乐可视化工具是怎么做的,那么这篇文章就是为你准备的。我们将从使用Canvas API来做简单的可视化入手,然后慢慢转移到用WebGL着色器来做更复杂的可视化。
疯狂的技术宅
2019/03/27
3.1K0
ArrayBuffer
ArrayBuffer对象、TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口。这些对象早就存在,属于独立的规格(2011 年 2 月发布),ES6 将它们纳入了 ECMAScript 规格,并且增加了新的方法。它们都是以数组的语法处理二进制数据,所以统称为二进制数组。 这个接口的原始设计目的,与 WebGL 项目有关。所谓 WebGL,就是指浏览器与显卡之间的通信接口,为了满足 JavaScript 与显卡之间大量的、实时的数据交换,它们之间的数据通信必须是二进制的,而不能是传统的文本格式。文本格式传递一个 32 位整数,两端的 JavaScript 脚本与显卡都要进行格式转化,将非常耗时。这时要是存在一种机制,可以像 C 语言那样,直接操作字节,将 4 个字节的 32 位整数,以二进制形式原封不动地送入显卡,脚本的性能就会大幅提升。
小小杰啊
2022/12/21
2.5K0
JavaScript对象:你知道全部的对象分类吗?
在前面的课程中,我已经讲解了 JavaScript 对象的一些基础知识。但是,我们所讲解的对象,只是特定的一部分,并不能涵盖全部的 JavaScript 对象。
越陌度阡
2022/05/06
6750
JavaScript对象:你知道全部的对象分类吗?
javascript入门到进阶 - javascript基础
JavaScript 是区分大小写的,并使用 Unicode 字符集。举个例子,可以将单词 Früh (在德语中意思是“早”)用作变量名。
公众号---人生代码
2020/07/14
6850
你知道JavaScript全部的对象分类吗?
在前面的课程中,我已经讲解了 JavaScript 对象的一些基础知识。但是,我们所讲解的对象,只是特定的一部分,并不能涵盖全部的 JavaScript 对象。
越陌度阡
2022/11/27
5640
你知道JavaScript全部的对象分类吗?
AppengineJS:JavaScript到GAE
尽管Google没有为App Engine平台开发JavaScript SDK,但是一个名为AppengineJS的GAE Python SDK的新端口可以为GAE构建应用程序,这些应用程序是用所有w
bill_bisheng
2018/01/05
2K0
从 JavaScript 到 TypeScript
TypeScript 并不是一个完全新的语言, 它是 JavaScript 的超集,为 JavaScript 的生态增加了类型机制,并最终将代码编译为纯粹的 JavaScript 代码。 TypeScript 简介 TypeScript 由 Microsoft(算上 Angular 2 的话加上 Google)开发和维护的一种开源编程语言。 它支持 JavaScript 的所有语法和语义,同时通过作为 ECMAScript 的超集来提供一些额外的功能,如类型检测和更丰富的语法。下图显示了 TypeScrip
牧云云
2018/04/28
1.5K0
从 JavaScript 到 TypeScript
WebGL2系列之实例数组(Instanced Arrays)
实例化是一种只调用一次渲染函数却能绘制出很多物体的技术,它节省渲染一个物体时从CPU到GPU的通信时间。 实例数组是这样的一个对象,使用它,可以把原来的的uniform变量转换成attribute变量,而且这个attribute变量对应的缓冲区可以被多个对象使用;这样在绘制的时候,可以减少webgl的调用次数。
用户3158888
2019/05/29
1.7K0
前端二进制文件处理
上一篇文章从 W3C 草案的角度入手过了一遍 File API 的几个方法,这一篇尝试梳理一下二进制数据相关的一些方法,有 Blob、ArrayBuffer、Uint8Array、BufferSource 等。
上山打老虎了
2022/06/15
1.6K0
前端二进制文件处理
从 JavaScript 到 TypeScript
TypeScript 并不是一个完全新的语言, 它是 JavaScript 的超集,为 JavaScript 的生态增加了类型机制,并最终将代码编译为纯粹的 JavaScript 代码。
一个会写诗的程序员
2018/08/17
1.2K0
从 JavaScript 到 TypeScript
浏览器中的手写数字识别
随着TensorFlow 2.0 alpha的发布,TensorFlow.js更新到首个正式版本1.0,TensorFlow的官网也增加了TensorFlow.js的文档,这说明TensorFlow.js不再是一个试验品。作为一名浏览器内核研发工程师,对TensorFlow.js自然充满了兴趣。
云水木石
2019/07/02
1.5K0
浏览器中的手写数字识别
javascript入门到进阶 - javascript词法文法
这部分描述了JavaScript的词法。ECMAScript源码文本会被从左到右扫描,并被转换为一系列的输入元素,包括tokens、控制符、行终止符、注释和空白符。ECMAScript定义了一些关键字、字面量以及行尾分号补全的规则。
公众号---人生代码
2020/07/14
7660

相似问题

将Uint8Array转换为Float32Array

10

Uint8Array到JavaScript对象

11

javascript:用于Float32Array的最小的Float32Array?

11

为什么TypeScript隐式地将Uint8Array转换为Float32Array

11

uint8array javascript和

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文