【发布时间】:2015-01-03 02:56:15
【问题描述】:
我在编写网络应用程序时遇到了一个奇怪的问题。这个网络应用程序的目的是每隔几秒钟从设备网络摄像头录制大约 10 秒的视频,并将其上传到服务器。 Web 应用程序使用了 here 指定的 MediaRecorder API。我可以在桌面上使用 Firefox 浏览器录制视频。但是,当我让我的网络应用在 Firefox Beta 或 Firefox for Android 上运行时,Mediarecorder.state 显示“正在录制”,而我得到 data.size = 0 字节。
下面是代码sn-p,它显示了记录是如何完成的:
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 中设置缓存权限,但没有成功。请帮我解决这个问题。
提前非常感谢!
【问题讨论】:
-
我猜想特定平台或设备根本不支持媒体记录器功能?如果我是你,我会尝试在不同的设备上使用不同版本的 android。
标签: javascript html firefox webrtc getusermedia