xyb*_*rek 8 javascript html5-video html5-audio
这是我用于显示和实时录制音频和视频的完整代码(然后将 blob 块上传到服务器):
$(function () {
var handleSuccess = function(stream) {
var player = document.querySelector("#vid-user");
player.srcObject = stream;
console.log("Starting media recording")
var options = {mimeType: 'video/webm'};
var recordedChunks = [];
var mediaRecorder = new MediaRecorder(stream, options);
mediaRecorder.ondataavailable = function(e) {
console.log("Data available")
if (e.data.size > 0) {
recordedChunks.push(e.data);
var url = URL.createObjectURL(new Blob(recordedChunks));
console.log("URL: " + url)
}
}
mediaRecorder.start();
};
navigator.mediaDevices.getUserMedia({ audio: true, video: true })
.then(handleSuccess)
})
Run Code Online (Sandbox Code Playgroud)
视频播放有效,但问题mediaRecorder.ondataavailable是未触发/调用。这里可能有什么问题?
chr*_*din 15
该start()方法采用一个名为 的可选参数timeslice。除非你指定参数dataavailable调用后事件仅触发stop()的MediaRecorder。
https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/start
解决办法是设置
mediaRecorder.start(1000); // where 1000 is the interval
Run Code Online (Sandbox Code Playgroud)