Я сделал приложение, используя cordova и плагин cordova-plugin-camera-preview.Я пытался протестировать его на AWS Device Farm, но на скриншотах, где плагин должен показывать видеозахват, черный цвет, а когда тесты заканчиваются, он не показывает ошибок.
Что это значит?
Это две функции, которые я использую для захвата видео (это работает на моем телефоне):
function captura_video() {
try{
window.canvas_video_temp = document.createElement("canvas");
window.contexto_video_temp = canvas_video_temp.getContext("2d");
var promisifiedOldGUM = function(constraints) {
var getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia);
if(!getUserMedia) {
return Promise.reject(new Error('Este dispositivo no esta preparado para el manejo de camara'));
}
return new Promise(function(resolve, reject) {
getUserMedia.call(navigator, constraints, resolve, reject);
});
}
if(navigator.mediaDevices === undefined) {
navigator.mediaDevices = {};
}
if(navigator.mediaDevices.getUserMedia === undefined) {
navigator.mediaDevices.getUserMedia = promisifiedOldGUM;
}
window.videoElement = document.getElementById("pantalla_video");
navigator.mediaDevices
.getUserMedia(window.constraints)
.then(
stream => {
window.videoElement.srcObject=stream;
window.videoElement.onloadedmetadata = () => {
if(window.interruptor_buscador == true){
auxiliar_1();
}else if(window.interruptor_enlace == true){
auxiliar_2();
}
window.videoElement.play();
bucle_cuadros();
};
}
).catch(
err => {
alert("Error mediaDevices: " + err.code);
}
);
}catch(err2){
alert("Error de captura de video: " + err2.message);
}
}
function bucle_cuadros(){
try{
if (window.videoElement.readyState === window.videoElement.HAVE_ENOUGH_DATA) {
//SOME DIRTY THINGS HERE
}
requestAnimationFrame(bucle_cuadros);
}catch(err){
alert("Error bucle_captura: " + err.message);
}
}
И это скриншот, предоставленный AWS Device Farm:
Спасибо.