2011-11-20 146 views
1

有沒有辦法直接分析音頻標籤內容的輸出,並使用輸出?爲了更清楚一點,我想要做的是根據聲音的級別,使用音頻內容的聲級來使球彈跳更高或更低(使用html5畫布)。HTML5音頻 - 分析輸出?

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

此外,這個問題是專門關於使用音頻元素。我意識到其他方法,但我認爲這可能最適合我現在正在做的事情 - 如果存在一個簡單的解決方案,那麼我寧願不必將額外的庫帶入我的東西。

回答

2

在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 ...'前綴 –

1

目前有三種不同的音頻API正在處理,所有不同的和在不同的瀏覽器工作。可悲的是,沒有什麼是標準化的,但它最終會到達那裏。

1

可以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。