[英]Audio data streaming in HTML5
調度音頻是Web Audio API的設計目標。 如果將已解碼的PCM音頻塊作為類型化陣列( AUDIO_CHUNKS
),則可以為每個塊創建音頻緩沖區,並使用noteOn()
在准確的時間(一個接一個)安排它們。 就像是:
var startTime = 0;
for (var i = 0, audioChunk; audioChunk = AUDIO_CHUNKS[i]; ++i) {
// Create/set audio buffer for each chunk
var audioBuffer = audioCtx.createBuffer(NUM_CHANNELS, NUM_SAMPLES, SAMPLE_RATE);
audioBuffer.getChannelData(0).set(audioChunk);
var source = audioCtx.createBufferSource();
source.buffer = audioBuffer;
source.noteOn(startTime);
source.connect(audioCtx.destination);
startTime += audioBuffer.duration;
}
選項1可能不起作用,因為音頻標簽不播放原始音頻數據(我假設你是PCM音頻數據的意思,或者我錯了?)。 每個瀏覽器都需要特定的編解碼 最重要的是音頻標簽在沒有間隙的情況下完全不可靠。
選項2可能有效。 網絡音頻api包含可能填充原始數據並播放的緩沖區,但我從未嘗試過這樣做。 現在最大的缺點是; 一個。 Chrome僅限b。 用戶需要通過鍵入about:flags並啟用Web Audio來配置chrome,這可能對某些人來說可怕。
第三種選擇是音頻數據API,這是一個中間立場。 我自己從未嘗試過,但從規格來看,它看起來就像你正在尋找的那樣。 我不贊成實現,所以你必須自己做一些研究:) https://wiki.mozilla.org/Audio_Data_API#Writing_Audio
請注意,我正在給出這些答案,而且我仍然是HTML5音頻的新手。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.