我已经尝试将分析仪连接到 Howler 声音一段时间了,但没有成功。
我像这样创建我的嚎叫声音:
var sound = new Howl({
urls: [
'/media/sounds/genesis.mp3',
]
});
然后我使用 Howler 全局上下文创建分析器,如下所示:
var ctx = Howler.ctx;
var analyser = ctx.createAnalyser();
var dataArray = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteTimeDomainData(dataArray);
我对网络音频 API 还很陌生。我想我在某处缺少连接,但我不知道我必须在 Howler 中连接它。
网络音频使用一系列“节点”将源文件连接到目的地,分析器是一种可以沿路径存在的节点(这是一个很好的概述 http://www.html5rocks.com/en/tutorials/webaudio/intro/)。要在 Howler 流中获取分析器,您需要将其插入到 Howler 创建的节点序列中。幸运的是,Howler 公开了其节点序列的核心元素。
最简单的用例是为 Howler 的所有音频输出(又称“主”)创建一个分析器。 Howler 中的每个 Howl、插件和失真节点都流经主增益节点,它直接连接到目的地节点。这就是我们放置分析仪的地方。
// Create an analyser node in the Howler WebAudio context
var analyser = Howler.ctx.createAnalyser();
// Connect the masterGain -> analyser (disconnecting masterGain -> destination)
Howler.masterGain.connect(analyser);
// Connect the analyser -> destination
analyser.connect(Howler.ctx.destination);
*编辑(2018-04-25):目前似乎没有必要将分析仪重新连接到原始的嚎叫目的地,并且实际上会导致严重的音质问题。应省略最后一行。
现在您的分析仪已连接到 Howler,并且 Howler 播放的任何内容都可以通过analyser.getByteTimeDomainData(dataArray)
等等。从这里您可以运行任何您想要的分析器/可视化方法,我从这些开始 https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)