问题标签 [audiobuffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12357 浏览

javascript - 如何控制(音频缓冲区)AudioContext() 的音量?

我在 JavaScript 中有以下 AudioContext() 声音对象。
它的体积是 100%。我想以 10% 的音量播放(其中音量 = 0.1)。
我怎样才能将它的体积减少到 10%?

0 投票
1 回答
3754 浏览

javascript - 如何将 AudioBuffer 转换为 mp3 文件?

有没有一种简单的方法可以做到这一点,还是我需要交错通道并创建一个DataView包含特定标头格式以及交错数据的通道?

0 投票
1 回答
1120 浏览

javascript - Web Audio API - 克隆一个 audioBuffer

我有一个deepClone在整个程序中使用的函数,它克隆一个对象的所有属性和值并返回克隆的对象(参见下面的代码)。我现在想audioBuffer在对象中包含一个并成功地将其复制到返回的对象中。有没有办法修改功能以包含此功能?

注意:并非所有传递给deepClone函数的对象都包含一个audioBuffer,因此它应该能够处理并成功克隆有和没有它们的对象。

编辑:有人能想出一种方法来结合JSON.parse(JSON.stringify(object))作为答案之一提供的解决方案吗?即在克隆发生时检查对象的属性,将其克隆if (property == 'trackBuffer')到与其他对象不同的位置?

deepClone功能:

正如您从代码片段中看到的那样,clonedTrack'trackBuffer被转换为预期来自JSON.parse(JSON.stringify(object));.

修改deepClone以成功克隆audioBuffer但保留现有功能的最佳方法是什么?

任何帮助将不胜感激,谢谢!

0 投票
2 回答
820 浏览

ios - AudioBufferList 在 Swift 中分配

我正在努力使用这个 API 和 Swift 中的语法

我不知道 (AudioBuffer) with () 是什么意思?任何想法以及如何初始化它?这是来自标题:

0 投票
1 回答
6602 浏览

javascript - 如何将 AudioBuffer 转换为 wav 文件?

我正在尝试将 AudioBuffer 转换为可以下载的 wav 文件。我尝试了 2 种方法:第一种方法,我记录所有声音,然后扔到 mediaRecorder 并执行以下操作:

我创建了一个包含 blob 的块表,然后使用这些块创建一个新的 Blob。然后在函数“createDownloadLink()”中创建一个音频节点和一个下载链接:

}

音频节点已创建,我可以收听录制的声音,因此一切似乎都正常。但是当我下载文件时,任何播放器都无法读取它。我认为这是因为它没有以 WAV 编码,所以无法理解。

第二种方法与上面的方法相同,除了“createDownloadLink()”函数。

在这里,我得到了我录制的声音的 AudioBuffer,但我没有找到如何将其转换为 WAV 文件...

0 投票
0 回答
195 浏览

createjs - 在 CreateJS 中将 AudioBuffer 传递给 AudioContext 分析器

我使用 AudioContext() 类在 JavaScript 中制作了一个 audioCtx。我有一个使用 audioCtx.createAnalyser() 制作的分析器。如果我的音频是一个音频标签,并且我使用 audioCtx.createMediaElementSource(audio) 创建了一个源,则将其传递给分析器: source.connect(analyser); 这有效 - 我收到数据。我还可以使用 audioCtx.createMediaStreamSource(stream); 连接麦克风 等等

但是,如果我的源是 CreateJS AbstractSoundInstance 对象(称为输入),它具有返回 AudioBuffer 对象的播放资源属性(声音正在播放):

AudioBuffer { sampleRate:44100,长度:5961072,持续时间:135.1717006802721,numberOfChannels:2 }

我似乎无法连接这个。我努力了

var source = audioCtx.createBufferSource(input.playbackResource);

然后尝试使用 analyser.connect(audioCtx.destination); 连接目的地 但我无法获得任何数据。我似乎对 CreateJS 声音的唯一钩子是playbackResource - SoundJS 文档说:“例如,WebAudioPlugin 将设置一个数组缓冲区。”

关于如何将 AudioBuffer 传递给分析器的任何建议(Lanny?Grant?)谢谢!

0 投票
1 回答
1212 浏览

javascript - JS Audio - audioBuffer getChannelData 到频率

bsd

我正在尝试实现音高检测,此外还在学习一些基本的音频物理学,我实际上对此很陌生,只是想了解整个事情是如何工作的......

我的问题是,audioBuffer 到底是什么,来自 getChannelData 的数据与频率有何关系。以及如何从audioBuffer中提取频率数据...

此外,如果有人可以解释一下采样率等,这也很棒。

谢谢!

0 投票
0 回答
811 浏览

html - 如何使用 Web Audio API 释放内存?

在我的代码中,我加载了一个 mp3 文件并将其解码为 AudioBuffer(window.buffer) 然后我成功播放

但是它消耗了大约100MB的大量内存如何释放它们?我试过这样

镀铬内存视图

在 chrome 内存视图中

有时内存在大约 10 秒内释放

有时会在大约 1 分钟内释放

有时似乎永远不会释放

我想知道我的代码是否是释放音频缓冲区的正确方法?

我需要关闭 AudioContext 吗?

0 投票
0 回答
379 浏览

ios - 如何播放来自 web-socket 的 nsdata 音频缓冲接收?

我正在目标 c 中创建一个呼叫应用程序。我的问题在于发送和接收音频流。记录音频缓冲并转换为 nsdata 并通过套接字火箭使用(base64 格式)发送这是很好的工作,但我不知道如何在从服务器接收到 nsdata 后播放此音频缓冲?

我的代码:

视图控制器.h

视图控制器.m

0 投票
1 回答
814 浏览

ios - 如何将 NSData 转换为音频文件并保存?

如何audiofile.aif使用 nsdata 创建和附加音频?