2017-10-13 1 views
0

私は、クライアントのbrwoserを使用してビデオ/オーディオを取得し、特定の間隔でそのチャンクをサーバにアップロードするものを実装しています。RecordRTCを使用して区間ベースのオーディオブロブを取得する方法

サーバー側では、オーディオで何かをしてから、同じビデオを更新されたオーディオと共に他のクライアントにブロードキャストする必要があります。

私はRecordRTCを使用してオーディオとビデオをキャプチャしています。ビデオの場合、私は方法ondataavailableを持っています私に時間ベースのブロブを与える。オーディオにも同様に対応できますか?この流れを実現するためのより良い提案も歓迎されました。

答えて

0

getUserMediaを使用してオーディオ専用ストリームをキャプチャするか、オーディオトラックのみを追加する必要がある新しいメディアストリームオブジェクトを生成します。

var recorder; 
var listOfBlobs = []; 

navigator.mediaDevices.getUserMedia({ 
    audio: true, 
    video: true // video tracks are enabled only for demo purpose 
}).then(function(camera) { 
    hiddenVideo.srcObject = camera; // make sure that camera tracks are not released/stoppped/inactive 

    var audioOnlyStream = new MediaStream(); 
    camera.getAudioTracks().forEach(function(audioTrack) { 
     audioOnlyStream.addTrack(audioTrack); 
    }); 

    recorder = RecordRTC(audioOnlyStream, { 
     type: 'audio', 
     mimeType: 'audio/webm', 
     recorderType: MediaStreamRecorder, 
     timeSlice: 1000, 
     ondataavailable: function(blob) { 
      listOfBlobs.push(blob); 
     } 
    }); 
}); 

btnStopRecording.onclick = function() { 
    recorder.stopRecording(function() { 
     var singleBlob = new Blob(listOfBlobs, { 
      type: 'audio/webm' 
     }); 

     var url = URL.createObjectURL(singleBlob); 
     window.open(url); 
    }); 
}; 
+0

サーバー側で処理する必要があるため、オーディオ/ wavオーディオをキャプチャします。 ** StereoAudioRecorder **を使用する可能性がありますが、** MediaStreamRecorder **は使用できませんでした。しかし、** StereoAudioRecorder **を使用すると、時間ベースのブロブは取得できません。それを得る方法はありますか?また、16000のdesiredSampleRateが必要です。 – user3170450

関連する問題