【发布时间】:2018-02-13 20:33:07
【问题描述】:
我已经在我的项目中添加了这段代码
if (navigator.mediaDevices === undefined) {
navigator.mediaDevices = {};
}
if (navigator.mediaDevices.getUserMedia === undefined) {
navigator.mediaDevices.getUserMedia = function (constraints) {
var getUserMedia = (
navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia
);
if (!getUserMedia) {
return Promise.reject(new Error('getUserMedia is not implemented in this browser'));
}
return new Promise(function (resolve, reject) {
getUserMedia.call(navigator, constraints, resolve, reject);
});
};
}
然后我尝试使用getUserMedia访问视频流
navigator.mediaDevices.getUserMedia({
video: true,
audio: false
}).then(stream => {
// do stuff
}).catch(error => {
console.log(error.name + " " + error.message);
});
当我在我的模拟器中测试它时,它适用于 android 版本 5 及更高版本,但是当我在实际设备上运行它时,我得到了这个错误
NotReadableError 无法启动源代码
我添加了cordova-plugin-media-capture 插件以确保我的应用程序将请求适当的权限,但是我不想使用该插件我宁愿使用getUserMedia API。
到目前为止,我的研究表明,出现此错误的原因是其他一些应用程序已经在使用相机,但事实并非如此,我什至更进一步,重新启动设备,然后打开我的应用程序,确保有没有其他正在运行的应用程序,我仍然收到错误。
有人遇到过这个问题吗?
【问题讨论】:
-
是的,我在 ionic 2、cordova 7 上有问题。
-
@hthetiot 你解决了吗?
-
到目前为止,我刚刚发现 video: true, audio: false 工作,但如果我启用 audio: true,我得到“NotReadableError 无法启动源”
-
同时确认在模拟器上工作但在设备上不行。
-
在离子上也有这个问题并正在寻找解决方案
标签: javascript cordova getusermedia