@ Неправильно, поскольку Cordova упаковывает ваш веб-сайт как приложение, оно подается внутри WKWebView / UIWebView. На iOS эти представления не могут иметь getUserMedia от Apple из-за проблем безопасности. Вы можете переопределить эти разрешения безопасности на Android, но не на iOS. Если вам нужно было создать это приложение изначально и / или создать плагин WebRTC для iOS, вы можете достичь того же конечного результата, захватив канал камеры и передав его во внешний интерфейс. Однако это важное начинание.
авил этот кусок кода в свой проект
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.
Пока мои исследования показывают, что причина этой ошибки в том, что какое-то другое приложение уже использует камеру, но это не так, я даже пошел дальше и перезапустил устройство, затем открыл свое приложение, убедившись, что других запущенных приложений нет. приложения, и я все еще получил ошибку.
У кого-нибудь была эта проблема?