2013-02-01 19 views
33

Ich arbeite mit node.js und ich strömte mein Audio zu meinem node.js Server. Jetzt bemerkte ich während des Prozesses den Audio-Blob des Gebäudes:Node.js kann keine Blobs erstellen?

var audioBlob = new Blob([dataview], { type: 'audio/wav' }); 

Dass ich eine Reference bei neuer Blob bekommen. Es scheint, dass Blob nicht unterstützt wird. Wie kann ich einen Blob erstellen, den ich mit node.js fs Modul speichern möchte.

Danke Jungs!

+2

Was ist Blob? Woher kommt das? – Pete

+0

http://en.wikipedia.org/wiki/Binary_large_object – zer02

+0

Alle gängigen Browser unterstützen es https://developer.mozilla.org/de/docs/DOM/Blob – zer02

Antwort

12

Die Lösung für dieses Problem besteht darin, eine Funktion zu erstellen, die zwischen Array-Puffer und Knoten-Puffer konvertieren kann. :)

Convert a binary NodeJS Buffer to JavaScript ArrayBuffer

In den letzten Knoten Versionen es ist nur:

let buffer = Buffer.from(arraybuffer); 
let arraybuffer = Uint8Array.from(buffer).buffer; 
+0

Hast du es geschafft zu arbeiten? Ich kann das Audio in eine Datei aufnehmen, aber ich kann es nicht hören, obwohl es die richtige Zeit hat. – Gabriel

+0

Ja, es hat funktioniert. – zer02

+0

kannst du mir helfen? Hast du so etwas in der Hauptsache gemacht? https: //gist.github.com/anonymous/11302966 – Gabriel

0

Als Anregung, möchten Sie vielleicht, dies lesen: http://howtonode.org/really-simple-file-uploads

Ich meine, ich glaube, ich weiß nicht, was Sie zu tun versuchen. Es kann kein Modul für Blobs werden, aber wenn Sie wollen einfach nur etwas auf der Festplatte schreiben, gibt es das fs-Modul .. Dieser Code wird nicht direkt arbeiten, aber ..

var fs = require('fs') 
    , express = require('express') 

app.post('/upload', function (req, res) { 
    // asynch call to write file to disk 
    fs.write("/tmp/file.mp3", req.params.body, function (err) { 
    if (err) console.log(err) 
    }); 
    res.end(); 
}); 

einfach ein MP3-posten, oder alles wirklich, um/upload, und es wird es auf die Festplatte schreiben. Sie können die von Ihnen gewünschte Validierung durchführen.

+0

Hallo, ich habe die Audio Buffers von GetUserMedia Audio auf meinen node.js Server gestreamt und möchte die Arrays in WAV kodieren. – zer02

+0

https://github.com/mattdiamond/Recorderjs – sent1nel

+0

Ich habe recorder.js verwendet. Ich habe es sogar erweitert. Das Problem besteht darin, den Blob serverseitig nicht clientseitig zu erstellen. Ich muss wissen, ob es eine Möglichkeit gibt, einen Blob innerhalb des Knotens zu erstellen.js, weil ich das Audio direkt auf node.js streame und die wav/mp3-Datei auf dem Server erstellen möchte. :-) – zer02