W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
Body mixin 的 arrayBuffer() 方法采用 Response 流并將其讀入完成。它返回一個 ArrayBuffer 解決的 promis。
response.arrayBuffer().then(function(buffer) {
// do something with buffer
});
arrayBuffer() 方法沒有參數。
arrayBuffer() 方法返回一個 promis,該 promis 一個 ArrayBuffer 解決。
在我們的 fetch 數組緩沖區(qū)中,存在一個播放按鈕。按下該播放按鈕時,該 getData() 函數將運行。請注意,播放完整的音頻文件之前將會下載。如果你需要在下載過程中播放 ogg,請考慮 HTMLAudioElement:
new Audio(music.ogg).play()
在 getData() 中,我們使用 Request.Request 構造函數創(chuàng)建一個新的請求,然后使用它來獲取一個 OGG 的音樂曲目。我們也使用 AudioContext.createBufferSource 來創(chuàng)建一個音頻緩沖區(qū)源。當讀取成功時,我們使用 arrayBuffer() 從使用中讀出 ArrayBuffer 響應,使用 AudioContext.decodeAudioData 解碼音頻數據,將解碼數據設置為音頻緩沖源的緩沖區(qū)(source.buffer),然后將源連接到
AudioContext.destination。
一旦 getData() 完成運行,我們啟動播放音頻源 start(0),然后禁用播放按鈕,以便它在播放時不會再次單擊(這會導致錯誤)。
function getData() {
source = audioCtx.createBufferSource();
var myRequest = new Request('viper.ogg');
fetch(myRequest).then(function(response) {
return response.arrayBuffer();
}).then(function(buffer) {
audioCtx.decodeAudioData(buffer, function(decodedData) {
source.buffer = decodedData;
source.connect(audioCtx.destination);
});
});
};
// wire up buttons to stop and play audio
play.onclick = function() {
getData();
source.start(0);
play.setAttribute('disabled', 'disabled');
}
規(guī)范 | 狀態(tài) | 注釋 |
---|---|---|
Fetch
在該規(guī)范中'arrayBuffer()'的定義。
|
Living Standard
|
電腦端 | 移動端 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome
|
Edge
|
Firefox
|
Internet Explorer
|
Opera
|
Safari
|
Androidwebview
|
Chrome for Android
|
Edge Mobile |
Firefox
for
Android
|
Opera
for
Android
|
iOS Safari | |
基本支持 | 支持:42 | 支持 | 支持:39 | 不支持 | 支持:29 | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: