问题标签 [audiocontext]

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 投票
0 回答
296 浏览

javascript - 来自麦克风的 html5 audioContext 反馈

所以我有一个有趣的小项目我正在做...尝试使用 html5 和 websockets 创建一个视频会议应用程序。我可以获取视频和音频,但我似乎无法摆脱反馈。有什么我出错的想法,或者对手头任务的一般建议吗?

0 投票
1 回答
576 浏览

javascript - AudioContext Analyzer 在 firefox/chrome 上工作,但在 Safari 上不工作

我正在为音频编写可视化工具,并且在 mac os x 上的 safari 以及使用远程调试器进行 ios 调试时遇到问题。在更新 AudioContext 分析器的动画函数上,ByteFrequency 数组中的值不会在 safari 上更新。以下是代码示例:

这是工作示例的链接http://basketballjock.org/

0 投票
1 回答
1123 浏览

javascript - 当audioContext.destination不在Web Audio API中播放声音时如何收听

我使用 $timeout角度函数每 512 毫秒调用一次 tick() 以播放我的音频队列中的数据。我正在使用它来执行实时音频流。有时声音会有一些剪辑,我真的需要在发出和接收声音之间保持一秒的增量。所以我想删除队列中与每次剪辑的持续时间相对应的一些音频数据。

您知道是否有办法在 audioContext.destination 上收听这些剪辑,例如:

这是我的 tick 和 audioQueue 函数:

0 投票
2 回答
535 浏览

javascript - Firefox Audiocontext 暂停

我正在尝试使用 javascript 录制音频并将其上传到服务器。我正在使用 Matt Diamond 的 Recorder js。但问题是生成的文件为 0 分钟。当通过 firebug 控制台调试时,发现 audiocontext 属性已暂停。当用谷歌搜索时发现记录音频上下文的状态应该处于运行状态。不知道问题是由于状态还是我错过了什么。想知道是什么导致 audiocontext 的状态处于挂起模式。如果我在其他浏览器上尝试状态正在运行并且正在生成文件。但我的限制是我想在我的应用程序中使用 firefox

火狐版本:42.0

下面是代码

在 firebug audiocontext 中调试上述代码时已暂停。

提前致谢

0 投票
1 回答
267 浏览

javascript - 如何正确清理 timbre.js

我通过将其与 AudioContextMonkeyPatch 耦合在 iOS 9.2 上成功运行 Timbre.js,并且我正在尝试使用此处找到的稍微修改过的代码版本:http: //mohayonao.github.io/timbre.js/interval.html。代码(保存查找)是:

我想弄清楚的是如何开始然后停止然后重新开始声音。我正在尝试查看开发人员的示例“暂停”按钮如何工作,但我似乎无法找到该代码示例。我做一些基本的事情,比如“T().stop(); env.pause();” 其次是“env.play();” (在单独的 onClick 事件中),我最终在第二个播放事件中收到了多个信号。真令人沮丧。文档建议“removeAll”将删除加载到 Timbre()(或 T()?)中的所有项目,但在我的停止函数中应用它也不能提供令人满意的结果。任何人都知道暂停和重新启动此脚本片段的正确方法吗?

0 投票
1 回答
584 浏览

javascript - iOS 9.2 上的 Buzz 与 AudioContext(Web 音频 API)

我一直在使用几个不同的 Web Audio API 库,但结果好坏参半。到目前为止,我最喜欢的是 Timbre.js。我通常会从 iOS 上的扬声器中听到“嗡嗡声”(即使使用 AudioContextMonkeyPatch 也是如此)。这有时不会发生。例如,重新启动手机,启动应用程序,单击“开始”按钮,声音与我的桌面浏览器相同(对我的耳朵而言)。做出改变(例如改变节奏),然后嗡嗡嗡嗡。但一般来说,音频输出是蜂鸣蜂鸣。

示例代码:

0 投票
1 回答
223 浏览

javascript - 在持久性后台脚本中共享 Chrome AudioContext

我正在开发一个 Google Chrome 扩展程序(版本 47.0.2526.111 m)。我遇到的问题是我超过了六 (6) 的 AudioContext (AC) 限制,并且代码在网页内容脚本 (CS) 中运行。我重写了代码让 CS 向持久后台脚本 (BS) 发送消息。我在 BS 的正文中定义了 AudioContext,希望它只会创建一个副本。每次 CS 向 BS 发送消息时,我都想播放两 (2) 个音调。我发现我需要在 BS .onMessage.addListener 函数中创建 GainNodes 和 OscillatorNodes 以避免这些节点的“一次性使用”行为。

测试时,不会产生任何音调。如果我对代码进行断点并逐步执行 .start() 和 .stop() 语句,则会生成音调。如果我让代码在 .start() 和 .stop() 以及 .stop() 之后的断点上自由运行,则没有音调。我怀疑范围问题并尝试使用 .createGain() 和 .createOscillator() 创建本地(var)和全局(无 var)变量,但这并没有改变行为。

如果我将所有 AC 对象的创建都放在侦听器函数中,它可以正常工作,但我又会用完 AC。

BS脚本代码在上面

0 投票
1 回答
255 浏览

javascript - 窗口最小化时的 AudioContext 计时问题

我按照本文中的说明创建了一个 Javascript 节拍器。它利用 Web Audio API 并audioContext.currentTime以精确计时为核心。

我的版本,可在此 plunker 获得,是原始版本的一个非常简化的版本,由 Chris Wilson 制作,可在此处获得。为了让我的工作,因为它使用一个实际的音频文件并且不通过振荡器合成声音,你需要下载 plunker 和这个音频文件,将它放在根文件夹中(它是一个节拍器的“滴答声”,但你可以使用任何你想要的声音)。

它就像一个魅力 - 如果不是因为如果用户最小化窗口,否则非常准确的节拍器会立即开始打嗝并且非常糟糕。我真的不明白这是什么问题,在这里。

Javascript

0 投票
0 回答
422 浏览

android - 从使用 Cordova Media 插件录制的音频文件中获取频率(HTML5 AnalyserNode)

我正在尝试编写一个小型 Cordova 应用程序(目前主要在 Android 6 上),它使用 Cordova Media-Plugin 记录和保存音频文件。

到目前为止一切顺利 - 这工作得很好。我能够记录、保存和播放文件。下一步是分析所述音频文件中有哪些主要频率。我的想法是使用 HTML5 AudioContext 和 AnalyserNode 来做到这一点。

为了访问该文件,我使用的是 Cordova File-Plugin。

但是现在我在读取和分析文件时遇到了一些问题。

decodeAudioData 抛出错误“无法解码音频文件”。当我只是加载一个随机的 .wav 文件时,它工作得很好,但不适用于我自己录制的文件。

我对这个主题很陌生,所以我不知道该怎么想……如果有人有想法,那就太好了。

谢谢你。

0 投票
1 回答
302 浏览

javascript - 带有音频上下文的顶点位移 (THREE.JS R76)

我正在尝试从 Three.js 中的 AudioContext api 映射顶点。

现在,我已经成功地使用平面(非着色器)完成了此操作,但在尝试将其应用于圆柱体时遇到了问题。由于圆柱顶点是全向量,而不是平面的 0,我不知道如何将它们映射到频率数据。

我为未来寻找音频上下文的观众提供了一些额外的功能。

音频上下文

这是我的顶部和底部平面代码...

卡在这里

使成为

我知道用着色器做这件事更有意义,但我对此还不够了解。我想您会将频率数据作为统一传递,但随后我又回到了最初的从频率到矢量操作的问题。