如何在Firefox / chrome中使用webrtc音频强行限制录制音频文件的时间?

示例:一个用户进入一个网站,我希望他们仅记录7秒钟的语音,然后让他们通过电子邮件将其发送给我。

最佳答案

选项“timeSlice”是时间限制录制的一种方式。
遵循示例将有所帮助:

function captureMicrophone(callback) {
    navigator.mediaDevices.getUserMedia({ audio: true, video: false
    }).then(function(microphone) {
	    callback(microphone);
    }).catch(function(error) {
	    log(error);
    });
}

var blobs = [];
var audio = document.querySelector('audio');
captureMicrophone(function(microphone) {
    setSrcObject(microphone, audio);
	audio.play();

	recorder = RecordRTC(microphone, {
		recorderType: StereoAudioRecorder,
		mimeType: 'audio/wav',
		desiredSampRate: 16000,
		numberOfAudioChannels: 1,
		timeSlice: 50, // pass this parameter
		// getNativeBlob: true,
		ondataavailable: function(blob) {
			blobs.push(blob);
			var size = 0;
			blobs.forEach(function(b) {
				size += b.size;
			});
			/////
		}
	});

	recorder.startRecording();
	recorder.microphone = microphone;

	document.getElementById("start").disabled = true;
	document.getElementById("stop").disabled = false;
});

关于javascript - 如何强制录制WebRTC音频的时间限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27945484/

10-10 00:59