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
答
目前有三种不同的音频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。
我假设Firefox的东西只适用于Firefox,对不对?吮吸它不是标准化的。但是感谢您的有用资源。 – varatis
是的,一堆FF调用是'moz ....'前缀。从我所知道的情况来看,我提出的API提案是提议的标准,但我不确定FF是否支持它:)在这种情况下,真正令人讨厌的是它们是完全不同的API,不同于许多其他的东西真正的区别在于'moz ...'和'webkit ...'前缀 –