2013-02-01 8 views
33

私はnode.jsで作業しています。私は自分のaudioをnode.jsサーバーにストリーミングしました。私は新しいブロブのにReferenceErrorを取得Node.jsはブロブを作成できません。

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

: は、今私は、オーディオブロブを構築するプロセスの間に気づきました。 Blobはサポートされていないようです。 node.js fsモジュールで保存したいBLOBを作成する方法を教えてください。

ありがとうございました!

+2

ブロブとは何ですか?それはどこから来たのですか? – Pete

+0

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

+0

すべての一般的なブラウザでサポートされています。https://developer.mozilla.org/de/docs/DOM/Blob – zer02

答えて

12

この問題の解決策は、配列バッファとノードバッファを変換できる関数を作成することです。それだけだ最近のノードのバージョンでは:)

Convert a binary NodeJS Buffer to JavaScript ArrayBuffer

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

あなたはそれを稼働させることができましたか?オーディオをファイルに録音することはできますが、適切な時間がありますが、聞くことはできません。 – Gabriel

+0

はい、うまくいきました。 – zer02

+0

あなたは私を助けることができますか?要点でこれをやったのですか?https://gist.github.com/anonymous/11302966 – Gabriel

0

の提案として、あなたはこれを参照することもできます。http://howtonode.org/really-simple-file-uploads

を私は私はあなたが何をしようとしているのか分からないと思います意味します。 BLOBのモジュールが存在しないかもしれませんが、あなただけのディスクに何かを書きたい場合は、fsのモジュールがあります。これのコードは直接動作しません、しかし...

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

は単にmp3を投稿、または何か本当に、/アップロードすると、それはディスクに書き込みます。あなたはどんなバリデーションをしてもかまいません。

+0

こんにちは、GetUserMedia Audioのオーディオバッファをnode.jsサーバーにストリーミングし、WAVにエンコードする必要があります。 – zer02

+0

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

+0

私はrecorder.jsを使用しました。私はそれを拡張しました。問題はクライアント側ではなくサーバ側でBlobを作成することです。 ノード内にブロブを作成する方法があるかどうかを知る必要があります。js。私はnode.jsにオーディオを直接ストリーミングしており、サーバにwav/mp3ファイルを作成したいからです。 :-) – zer02

関連する問題