1

ユーザーオーディオを録音するアプリを開発しています。オーディオの録音には、getUserMedia API を使用しています。音声の最大長は約 15 分です。キャッシュに保存したくありません。ノードjsサーバーに直接ストリーミングすることでそれを行いました。サーバーはそれをストリーミングしてエンコードし、mp3 ファイルが生成されるようにします。それはこのようなものによって行われます。

var encoder;
var lame = require('lame');
var fs = require('fs');

var encodeAudio = function (data) {
  // my own logic here ---- >
  // Encode audio is below
      encoder = lame.Encoder({
        channels: 2,
        bitDepth: 16,
        sampleRate: 22050,
        bitRate: 128,
        outSampleRate: 22050,
        mode: lame.STEREO
      });
      encoder.pipe(fs.createWriteStream('/tmp/' + data.name + '/audio.mp3'));
    }
    encoder.write(new Buffer(data.buffer), function () {
    });
  }
};

クライアント側

navigator.getUserMedia = ( navigator.getUserMedia ||
                     navigator.webkitGetUserMedia ||
                     navigator.mozGetUserMedia ||
                     navigator.msGetUserMedia);
  navigator.getUserMedia({audio: true, video: false}, function (stream) {
    var audioContext = window.AudioContext;
    var context = new audioContext();
    window.audioInput = context.createMediaStreamSource(stream);
    var bufferSize = 2048;
    var recorder = context.createScriptProcessor(bufferSize, 1, 1);
    recorder.onaudioprocess = self.onAudioProcess.bind(self);
    audioInput.connect(recorder);
    recorder.connect(context.destination);
  }, this.onAudioError);

ここでは、クライアント側から socket.io からデータが送信されます。したがって、オーディオのチャンクがクライアントから送信されるたびに、nodejs サーバーはバッファーを作成し、それを mp3 として保存します。

今、WebRTC とその機能について聞きました。ただし、Safari と IE では機能しません。次に、Temasys プラグインを使用して、WebRTC を Safari および IE と互換性を持たせました。しかし、Temasys は録音をサポートしていないため、混乱しています。誰かがこれを行う方法を案内できますか?

4

2 に答える 2

0

私はテマシスで働いています。サービスが既に動作していて、サービスが Chrome で実行されているときにそのサービスを使用してストリームを記録できる場合は、Temasys の AdapterJS をインストールするか、独自の AdapterJS を変更してサービスを「Temasys プラグイン対応」にし、ユーザーのIE または Safari を使用するサービスは、Temasys WebRTC プラグインをインストールする必要があります。プラグインの無料版のインストールに関する完全なドキュメントは、https ://confluence.temasys.com.sg/display/TWPP にあります。

参加できる公開メーリング リストもあり、特に WebRTC プラグイン用に Temasys によって管理されています: https://groups.google.com/forum/#!forum/temasys-discuss-webrtcplugin

于 2016-11-18T23:38:28.300 に答える