W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Body mixin 的 arrayBuffer () 方法采用Response流,并將其讀入完成。它返回的promise,解決ArrayBuffer。
arrayBuffer() 方法的語法格式如下所示:
response.arrayBuffer().then(function(buffer) {
// do something with buffer
});
arrayBuffer() 方法沒有參數(shù)。
arrayBuffer() 方法會(huì)返回一個(gè)promise,可以解決一個(gè)ArrayBuffer。
在我們的取數(shù)組緩沖區(qū)中,我們有一個(gè)播放(Play)按鈕。按下時(shí),該getData()函數(shù)運(yùn)行。請注意,在播放完整音頻文件之前,請先下載。如果你需要在下載(stream)時(shí)播放ogg,請考慮HTMLAudioElement:
new Audio(music.ogg).play()
在getData()函數(shù)中,我們使用Request.Request構(gòu)造函數(shù)創(chuàng)建一個(gè)新的請求,然后用它來獲取一個(gè)OGG音軌。我們也使用AudioContext.createBufferSource來創(chuàng)建一個(gè)音頻緩沖源。當(dāng)獲取成功時(shí),我們使用arrayBuffer()在響應(yīng)外讀取一個(gè)ArrayBuffer,使用AudioContext.decodeAudioData解碼音頻數(shù)據(jù),將解碼數(shù)據(jù)設(shè)置為音頻緩沖源的緩沖區(qū)(source.buffer),然后將源連接到AudioContext.destination。
一旦getData()完成運(yùn)行,我們就使用start(0)開始播放音頻源,然后禁用播放按鈕,以便在播放時(shí)不能再次單擊(這會(huì)導(dǎo)致錯(cuò)誤)。
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
|
Feature
|
Chrome
|
Edge
|
Firefox(Gecko)
|
Internet Explorer
|
Opera
|
Safari(WebKit) |
---|---|---|---|---|---|---|
基本的支持 |
支持:41 [1]、42
|
(是) | 支持:34 [1] 、39 | 不支持 |
支持:28 [1]、29 |
不支持 |
Feature | Android | Edge | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
基本的支持 | 不支持 | (是) | 不支持 | 不支持
|
不支持
|
不支持
|
不支持
|
不支持
|
以下是對于上表中角標(biāo)的注解:
[1]在Chrome 42、Firefox 34和Opera 28中對于arrayBuffer()的支持隱藏在首選項(xiàng)后面。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: