2013-10-18 46 views
3

它基本上都是標題中的內容,我如何知道或如何訪問Web Audio API中soundNode的持續時間。我期待有像source.buffer.sizesource.buffer.duration這樣的東西可用。如何知道Web Audio API中聲音的持續時間?

我不能想到的唯一選擇就是讀取文件元數據。

回答

1

假設您正在加載音頻,當您使用context.decodeAudioData對其解碼時,生成的arrayBuffer具有.duration屬性。這將是用於創建源節點的相同陣列緩衝區。

你可以看看SoundJS implementation,雖然也有更容易的跟隨教程。

希望有所幫助。

0

好消息和壞消息;節點沒有長度 - 但我敢打賭,你可以實現你想要的另一種方式。

音頻節點是聲音處理器或發生器。由節點處理或製作的聲音的持續時間可能會發生變化 - 對於電腦來說,它們都是一樣的,缺乏聲音的是一個充滿零而不是其他值的緩衝區。因此,如果您需要動態確定聲音的持續時間,則可以在收到的輸入音頻中編寫一個定時「靜音」的節點。

然而,我懷疑你提到元數據時,你正在加載現有的聲音 - 在這種情況下,你應該確實使用他們的元數據,或者通過加載到音頻元素並從中請求長度來確定長度。

相關問題