JavaScript Copy-Operation on Buffer

F

Fluffy

Guest
Hallo,

Ich habe momentan 2 ArrayBuffer welche ich vom Browser gestellt bekomme.
Ich möchte den Inhalt von Puffer 1 in Puffer 2 schreiben.
z.Z. erledige ich das über eine for-Schleife.
Dies funktioniert, ist aber nicht sehr Performant und sobald der Browser etwas anderes macht, geht das ggf. in die Knie.
Eine einfache Zuweisung wie buffer1 = buffer2 kann ich nicht machen, da ich dadurch die Referenz verliere.
Ich bräuchte als eine Operation welche nicht buffer1 überschreibt, sondern der Puffer auf den in buffer1 verwiesen wird, da es aber sogar in C keine entsprechende Notation gibt um das Problem zu beschreiben, würde mir auch ein performanterer Weg reichen, einen Array in einen anderen zu kopieren.
Hier etwas Pseudocode um mein Problem zu verdeutlichen:

PHP:
...
var buffer1 = getArrayBuffer1(),
bugger2 = getArrayBuffer2();

for(i = 0;i <buffer1.length; i++) {
   buffer2[i] = buffer1[i]; // momentane Lösung
}
buffer2 = buffer1; // referenz verloren, buffer2 bleibt leer
...

Gruß

Fluffy

Edit:
Das die Puffer gleich lang sind ist vom System garantiert.
 
Zuletzt bearbeitet von einem Moderator:
Danke für die Antwort.
Werde es mir definitiv für spätere Projekte merken, aber die Methode steht dem Objekt leider nicht zur Verfügung(Methode slice ist in einem Objekt Float32Array nicht vorhanden) und ich glaube auch das es sonst nicht funktionieren dürfte, denn ich bekomme die Referenz auf den outputbuffer ja von einer Methode, und mittels slice() ändere ich ja nur den Wert in der Variablen aber nicht an der Stelle der Referenz und setter gibt es an der Stelle leider nicht.

Zum besseren Verständniss:
Es geht um das Prozessieren von Audiodaten mittels ScriptProcessorNode ändert sich alles mit dem MediaRecorder aber der dürfte noch auf sich warten lassen.

Gruß

Fluffy
 
Zurück
Oben