

Node.jsを用いてwavファイルを保存する際、  
WebAudioAPIで録音したデータをどのような形にして  
fs.writeFile()に渡せばよいのかわからず困っています。

◆開発環境  
win 10  
goole chrome ver55.0.2883.87 m  
Node.js ver6.7.0  
Web Audio API  
recorder.js

現在、音声録音自体はWeb Audio APIを使用し、  
wavファイルへの変換はrecorder.js  
(参考：<https://labs.irohasoft.com/webaudio/chrome/>)  
を用いて行っているのですが、fs.writeFileでwavファイルを  
保存する方法が分からず四苦八苦しています。

◆クライアントサイド  
音声録音はWebAudioAPIを使用しており、  
recorder.jsでwavファイルに変換しています。  
以下はwavファイル変換部分のコードです。

[code]

    recorder && recorder.exportWAV(function(blob) {
        var url = URL.createObjectURL(blob);
        var hf = document.createElement('a');
    
        hf.href = url;
        hf.download = new Date().toISOString() + '.wav';
        hf.innerHTML = hf.download;
        voiceBuff = ?;
    });
    
[/code]

voiceBuffはmodule.exportsで準備した変数で  
fs.writeFile()の第二引数として利用したいと考えているのですが、  
?の部分に何を渡せばよいのか見当がつかず悩んでいます。

◆共通のjsファイル(common.js)

[code]

    var voiceBuff;
    
    (function (exports) {
        exports.getVoice = function(){return voiceBuff};
    })(typeof exports === 'undefined' ? this.mymodule = {} : exports);
    
[/code]

◆サーバサイド

[code]

    var fs     = require('fs');
    var common = require('./js/common.js');
    
    ・・・
    
    fs.writeFile(
        'rec01.wav',
        common.getVoice(),
        function(err){
            console.log(err);
        }
    );
    
[/code]

勉強不足のため誤った箇所やわかりにくい部分など  
多々あるとは思いますが、何かわからない部分があれば  
随時追記していきます。  
ご教授よろしくお願い致します。


CC BY-SA 3.0
2016-12-28T22:44:06.293
31507
2016-12-29T19:24:33.057
20051
question
javascript html5 node.js websocket
Node.jsでwavファイルを保存する方法


◆クライアント側  
XMLHttpRequest を使ってバイナリデータをPOSTする  
[バイナリデータの送信](https://developer.mozilla.org/ja/docs/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Sending_binary_data)

◆サーバサイド  
POSTされたbodyを保存する  
[Node.jsでフォームからアップロードされたファイルを保存する](http://qiita.com/naga3/items/6eca632ffcfd14dba873)

で解決しました。


CC BY-SA 3.0
2016-12-29T19:24:33.057
31535
2016-12-29T19:24:33.057
20051
31507
answer