3
在先前的堆棧溢出問題獲取音頻電平,我發現這個代碼:從HTML5音頻麥克風流
<script>
// this is to store a reference to the input so we can kill it later
var liveSource;
// creates an audiocontext and hooks up the audio input
function connectAudioInToSpeakers(){
var context = new webkitAudioContext();
navigator.webkitGetUserMedia({audio: true}, function(stream) {
console.log("Connected live audio input");
liveSource = context.createMediaStreamSource(stream);
liveSource.connect(context.destination);
console.log(liveSource);
});
}
// disconnects the audio input
function makeItStop(){
console.log("killing audio!");
liveSource.disconnect();
}
// run this when the page loads
connectAudioInToSpeakers();
</script>
這需要從用戶的麥克風音頻並將其播放通過揚聲器。我想要的是輸入的電平(幅度)(例如,如果發生削波,或者告訴用戶他們需要說出來,我可以顯示紅色警告)。在上面的代碼中,我怎樣才能真正掌握原始數據?
例如,如何將實際數字記錄到控制檯?我猜這些都存儲在liveSoure中?
我不需要任何聰明的畫布動畫等,只是一個數字,告訴我輸入是多麼大聲。這是相對簡單的嗎?如果是這樣,它是如何完成的?
感謝
這是非常感謝。 – Lars 2013-04-09 10:19:20
只要實際添加,它似乎只能工作幾秒鐘,然後停止工作。你知道爲什麼嗎?我已經把它放在一個單獨的問題在這裏:http://stackoverflow.com/questions/15900103/html5-audio-buffer-getting-stuck謝謝 – Lars 2013-04-09 11:32:12
這是值得的,這種方法是非常低效的。然而,如果你想得到樣品的真實峯值,這是必需的。更快的方法是使用來自分析儀節點的時域數據,但您可能會錯過一些峯。如果你只是在做可視化,這可能無關緊要。 – Brad 2014-01-19 17:44:17