2017-10-13 63 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

相关问题