2017-10-13 112 views
0

我正在實現一些需要使用客戶端brwoser視頻/音頻,並在特定的時間間隔上傳到服務器的塊。任何方式來使用RecordRTC獲取基於間隔的音頻blob

現在,在服務器端,我需要對音頻進行一些操作,然後將帶有更新音頻的相同視頻廣播到其他客戶端。

我使用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

相關問題