我在编写网络应用时遇到了一个奇怪的问题。此Web应用程序的目的是每隔几秒从设备网络摄像头记录大约10秒的视频并将其上载到服务器。 Web应用程序使用MediaRecorder API指定here。我可以在桌面上使用firefox浏览器录制视频。但是,当我在Firefox Beta或Firefox for Android上运行我的Web应用程序时,Mediarecorder.state显示'录制',而我得到data.size = 0字节。
以下是显示录制完成方式的代码段:
timerId = setInterval(function () {
recorder.start(length);
console.log(recorder.state);
// console.log(timerId);
recorder.ondataavailable = function (event) {
if (recorder.state == 'recording' && navigator.onLine == true) {
//var blob = new window.Blob([event.data], {
// type: 'video/mp4'
//});
var blob = new window.Blob([event.data]);
// use the created blob
console.log('data size: ' + blob.size);
counter++;
var formData = new FormData();
formData.append("blob", blob, "video" + counter);
formData.append("deviceid", deviceId);
formData.append("seqid", counter);
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState == 4 && request.status == 200) {
console.log(request.responseText);
}
}
request.open("POST", "/Device/Upload3", true);
request.send(formData);
if (recorder != null)
recorder.stop();
}
};
}, 30000);
我已尝试在about:config中设置缓存权限,但没有运气。请帮我解决这个问题。
非常感谢提前!
答案 0 :(得分:0)
感谢。我找到答案并分享它,以便让每个人受益 - 目前MediaRecorder API不支持Firefox for Android上的视频录制。 我在MDN here
的支持页面上找到了它