我使用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);
}
}
你是从相机拍摄截图还是拍照?
https://aws.amazon.com/device-farm/faqs/
问:我可以使用设备相机吗?
是的,您可以使用前置和后置设备摄像头。由于设备的安装方式,图像和视频可能看起来很暗且模糊。
我认为这个图像现在可以在Device Farm中使用。
HTH
-詹姆士