HTML5音频 - 分析输出?

问题描述:

有没有办法直接分析音频标签内容的输出,并使用输出?为了更清楚一点,我想要做的是根据声音的级别,使用音频内容的声级来使球弹跳更高或更低(使用html5画布)。HTML5音频 - 分析输出?

例如,如果有像audioElement.getVolumeLevel()这样的东西,它真的很方便,但我不知道这样的事情是否存在。

此外,这个问题是专门关于使用音频元素。我意识到其他方法,但我认为这可能最适合我现在正在做的事情 - 如果存在一个简单的解决方案,那么我宁愿不必将额外的库带入我的东西。

在Firefox中,这是可能的,但它尚未标准化,据我所知(Chrome浏览器可能支持它):

https://wiki.mozilla.org/Audio_Data_API

的Webkit API建议:https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html

而且屈指可数相关文章/演示:

http://ajaxian.com/by/topic/sound

http://ajaxian.com/archives/amazing-audio-api-javascript-demos

+0

我假设Firefox的东西只适用于Firefox,对不对?吮吸它不是标准化的。但是感谢您的有用资源。 – varatis

+0

是的,一堆FF调用是'moz ....'前缀。从我所知道的情况来看,我提出的API提案是提议的标准,但我不确定FF是否支持它:)在这种情况下,真正令人讨厌的是它们是完全不同的API,不同于许多其他的东西真正的区别在于'moz ...'和'webkit ...'前缀 –

目前有三种不同的音频API正在处理,所有不同的和在不同的浏览器工作。可悲的是,没有什么是标准化的,但它最终会到达那里。

可以Firefox和Chrome会改变音量电平是这样的:

var aud = document.getElementsByTagName('audio')[0] 
aud.play() 
aud.volume *= 0.5 

调整音量返回复位电平,因此,例如,如果你想这样的JS控制台:

> aud.volume *= 0.5 
0.015625 
> aud.volume *= 0.5 
0.0078125 
> aud.volume *= 0.5 
0.00390625 

降低音量...... HTH。