Die Methode arrayBuffer() des Body Mixin nimmt einen Response Stream und liest ihn bis zum Ende. Sie gibt ein Promise zurück, welches in einen ArrayBuffer aufgelöst wird.

Syntax

response.arrayBuffer().then(function(buffer) {
  // mach etwas mit dem Buffer
});

Parameter

Keine.

Rückgabewert

Ein Promise, welches in einen ArrayBuffer aufgelöst wird.

Beispiel

In unserem Live-Beispiel zum Abruf eines Array Buffers haben wir einen Wiedergabe-Knopf. Bei einem Klick darauf wird die Funktion getData() ausgeführt. Beachten Sie, dass vor der Wiedergabe die ganze Audio-Datei heruntergeladen wird. Benötigen Sie eine Wiedergabe noch während des Downloads (Streaming) ziehen Sie HTMLAudioElement in Betracht:

new Audio(music.ogg).play()

In getData() erstellen wir eine neue Anfrage mit dem Request.Request Konstruktor, um dann einen OGG Musik-Track abzurufen. Wir benutzen ebenfalls AudioContext.createBufferSource um eine Audio-Puffer-Quelle zu erstellen. Ist der Abruf erfolgreich, lesen wir mit arrayBuffer() einen ArrayBuffer aus der Antwort, dekodieren die Audiodaten mit AudioContext.decodeAudioData, setzen die dekodierten Daten als Quelle für den Audio-Puffer fest und verbinden die Quelle mit AudioContext.destination.

Wenn getData() durchgelaufen ist, starten wir die Wiedergabe mit start(0) und deaktivieren den Wiedergabe-Knopf, damit er nicht erneut geklickt werden kann, während die Wiedergabe läuft (was zu einem Fehler führen würde).

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);
    });
  });
};

// Knöpfe zum Abspielen und Anhalten verknüpfen

play.onclick = function() {
  getData();
  source.start(0);
  play.setAttribute('disabled', 'disabled');
}

Spezifikationen

Specification Status Comment
Fetch
Die Definition von 'arrayBuffer()' in dieser Spezifikation.
Lebender Standard  

Browserkompatibilität

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid WebviewChrome für AndroidEdge MobileFirefox für AndroidOpera für AndroidSafari auf iOSSamsung Internet
arrayBuffer
Experimentell
Chrome Vollständige Unterstützung 42
Vollständige Unterstützung 42
Vollständige Unterstützung 41
Deaktiviert
Deaktiviert From version 41: this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
Edge Vollständige Unterstützung JaFirefox Vollständige Unterstützung 39
Vollständige Unterstützung 39
Vollständige Unterstützung 34
Deaktiviert
Deaktiviert From version 34: this feature is behind the dom.fetch.enabled preference. To change preferences in Firefox, visit about:config.
IE Keine Unterstützung NeinOpera Vollständige Unterstützung 29
Vollständige Unterstützung 29
Vollständige Unterstützung 28
Deaktiviert
Deaktiviert From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari Keine Unterstützung NeinWebView Android Keine Unterstützung NeinChrome Android Keine Unterstützung NeinEdge Mobile Vollständige Unterstützung JaFirefox Android Keine Unterstützung NeinOpera Android Vollständige Unterstützung 29
Vollständige Unterstützung 29
Vollständige Unterstützung 28
Deaktiviert
Deaktiviert From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari iOS Keine Unterstützung NeinSamsung Internet Android Keine Unterstützung Nein

Legende

Vollständige Unterstützung  
Vollständige Unterstützung
Keine Unterstützung  
Keine Unterstützung
Experimentell. Das Verhalten kann sich zukünftig ändern.
Experimentell. Das Verhalten kann sich zukünftig ändern.
Benutzer muss dieses Feature explizit aktivieren.
Benutzer muss dieses Feature explizit aktivieren.

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Mitwirkende an dieser Seite: mdnwebdocs-bot, SebinNyshkim
Zuletzt aktualisiert von: mdnwebdocs-bot,