问题标签 [web-audio-api]

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 回答
8051 浏览

javascript - 播放 AudioBufferSourceNode 两次?

我应该能够使用相同AudioBufferSourceNode的声音多次播放吗?出于某种原因,第二次调用noteGrainOn不会播放音频,即使有noteOff.

此代码仅播放一次声音:

0 投票
4 回答
14643 浏览

javascript - 用于可视化波形并与波形交互的 Web 音频

如何编写 JavaScript 程序来显示音频文件中的波形?我想使用网络音频和画布。

我试过这段代码:

但结果与我想要的相差甚远(即图像不平滑,因为我用矩形绘制)。我希望它看起来像这张图片一样平滑:

波形示例

关于如何实现波形的任何提示?

0 投票
4 回答
7253 浏览

javascript - 如何使用网络音频 API 反向播放音频?

如何使用网络音频 API反向播放音频?我似乎在 API 文档中找不到任何内容...

0 投票
4 回答
6078 浏览

javascript - 从 webAudio / mozAudio 获取原始 PCM 数据

我正在尝试保存 webAudio API 的输出以供将来使用,到目前为止,我认为获取 PCM 数据并将其保存为文件将符合我的期望,我想知道 webAudio 或 mozAudio 是否已经支持保存输出流,如果不怎么可以我从输出流中获取 pcm 数据

0 投票
2 回答
4532 浏览

javascript - 在连接到网络音频 api 的音频元素上设置播放速率

我一直在尝试使用 createMediaElementSource 将音频元素连接到网络音频 api 并让它工作,但我需要做的一件事是改变音频标签的播放速率,但我无法让它工作。

如果您尝试运行下面的代码,您将看到它可以正常工作,直到您取消注释我们设置播放速率的行。当这条线在音频被静音。

我知道我可以使用 source.playbackRate.value 在 AudioBufferSourceNode 上设置播放速率,但这不是我想做的,我需要在使用 createMediaElementSource 连接到网络音频 api 时设置音频元素的播放速率所以我没有任何 AudioBufferSourceNode。

有没有人设法做到这一点?

0 投票
2 回答
10533 浏览

javascript - decodeAudioData 返回一个空错误

我来到这里希望你们可爱的人在这里可以帮助我解决我遇到的一些问题。

具体来说,每次我尝试使用 webkitAudioContext 的 decodeAudioData 方法时,它总是会触发带有 null 错误的错误处理程序。这是我目前正在使用的代码:

在这一点上,它不断地向控制台记录错误消息说err(decodeAudioData) = null,主要是因为这正是我决定记录它的方式。无论如何,知道为什么会这样吗?

我正在使用 Chrome Canary v20.0.1121.0 来尝试让某些东西正常工作。但是,显然,它不起作用!那么,知道我能做什么吗?如果需要任何新信息,请告诉我,我会根据需要进行更新。

0 投票
2 回答
6883 浏览

javascript - 为 decodeAudioData (WebAudio API) 定义“有效的 mp3 块”

我正在尝试使用 decodeAudioData 在 javascript 中解码和播放较大 mp3 文件的初始部分。我的第一个粗略的方法是从 mp3 的开头切出一些字节并将它们提供给 decodeAudioData。毫不奇怪,这失败了。

经过一番挖掘,似乎 decodeAudioData 只能使用Fair Dinkum Thinkum记录的“有效 mp3 块” ,here

然而,没有关于有效 mp3 块的结构的说明(上述的作者没有进入这个)。我知道那里存在各种 mp3 拆分器,但我想以编程方式解决这个问题。(我正在尝试在服务器端使用 nodejs 实现一种“穷人的流媒体”)。

那么,在 mp3 帧头上拆分是否就足够了,还是我需要做更多?(也许通过在末尾附加一些数据来“关闭”每个块?)“字节库”怎么样?这会导致问题吗?作为记录,我目前正在使用 128kbps cbr mp3。这会以任何方式简化流程吗?

任何有关 decodeAudioData 期望作为有效数据的信息将不胜感激。

谢谢你。

PS:我意识到这可能是对 Fair Dinkum Thinkum帖子的澄清请求,但我的低声誉使我无法发表评论。所以除了一个新问题,我看不出还能怎么做。再次感谢。

0 投票
2 回答
503 浏览

javascript - 用于网络音频 api 的声音库

我正在使用 Buzz.js 在我的网页上播放声音,但我找不到下载声音文件的地方。有谁知道我在哪里可以获得钢琴键库或任何其他大型相关声音文件(midi 会很棒)。如果可以的话请帮忙。

0 投票
3 回答
2406 浏览

google-chrome - Web Audio API:seek、play-/buffer-progress

当您使用 Chrome 中的音频元素播放音频时,您会遇到烦人的咔嗒声和破裂声。至少在我的 64 位 Linux 安装下,即使在我格式化并安装了新的 Fedora 版本之后也是如此。(Firefox 和 Opera 都很好,甚至是 VirtualBox Windows 7 中的 IE9。)

但是使用 Web Audio API 而不是音频元素的演示具有完美的声音。所以我想知道我是否可以像音频元素一样使用 Web Audio API?但是有些事情你似乎无法用这个 API 做。还是我错过了什么?我在哪里找不到的东西:

  • 在文件完全加载之前开始播放文件
  • 获取缓冲区进度更新(取决于上一点)
  • 获取播放进度更新
  • 寻求

有没有办法使用 Web Audio API 做到这一点?

这是我会使用它的地方:http: //tinyurl.com/magnatune-player

0 投票
1 回答
1752 浏览

html - 像 MozAudioAvailable 和 Webkit 的音频 API 一样吗?

我一直在尝试使用 Firefox 的音频 API 来检测音频中的静音。(重点是启用半自动转录。)

令人惊讶的是,这个简单的代码或多或少足以检测静音和暂停:

它不完美,但作为概念证明,我深信不疑。

我现在的问题是,有没有办法在 Webkit 的音频 API 中做同样的事情?从我所见,它更倾向于合成而不是声音处理(但也许我错了?)。

(我希望 Webkit 团队能够实现 Mozilla 创建的相同界面,然后继续他们更花哨的东西......)