Instascan: Admite cámaras frontales/traseras

Creado en 19 jul. 2016  ·  11Comentarios  ·  Fuente: schmich/instascan

Comentario más útil

Mi solución, hasta que esto se solucione al permitir algunos ajustes de cámara personalizados, es configurar la primera cámara que contiene "atrás" dentro de su name :

if (cameras.length > 0) {
    var selectedCam = cameras[0];
    $.each(cameras, (i, c) => {
        if (c.name.indexOf('back') != -1) {
            selectedCam = c;
            return false;
        }
    });

    scanner.start(selectedCam);
} else {
    console.error('No cameras found.');
}

Siempre selecciona la cámara trasera.

Todos 11 comentarios

¿Alguna actualización sobre esto?
¿Necesitas un PR? En caso afirmativo, ¿tiene algún consejo por dónde empezar y/o cómo debería comportarse la interfaz instascan?

¿Qué opinas sobre pasar restricciones a Camera.getCameras() ?

La implementación getCameras podría intentar getUserMedia con las restricciones proporcionadas y filtrar la cámara que cumple con esas restricciones.
ver cámara.js#L53

Esta también podría ser una forma de arreglar el #22, pero entonces sería necesario pasar las restricciones de resolución al constructor Camera , para fusionar las restricciones de resolución con el método predeterminado provisto en start .
ver cámara.js#L20

Si a alguien le parece bien, estoy dispuesto a enviar un PR;)

Mi solución, hasta que esto se solucione al permitir algunos ajustes de cámara personalizados, es configurar la primera cámara que contiene "atrás" dentro de su name :

if (cameras.length > 0) {
    var selectedCam = cameras[0];
    $.each(cameras, (i, c) => {
        if (c.name.indexOf('back') != -1) {
            selectedCam = c;
            return false;
        }
    });

    scanner.start(selectedCam);
} else {
    console.error('No cameras found.');
}

Siempre selecciona la cámara trasera.

mi extremo funciona, pero cuando trato de usar la cámara trasera, se voltea horizontalmente ... ¿cómo volver a colocarla en la posición habitual? Gracias

Tengo un problema inusual. No importa qué cámara inicie, siempre muestra la cámara frontal. Puedo ver claramente ambas cámaras en la matriz y obligo a iniciar la cámara trasera, aún así, el script siempre inicia la cámara frontal.
Acabo de descargar la versión más reciente de iOS.
Ajustes:
iPhone 6s
iOS 11
Safari.

Tampoco carga la cámara en Chrome y Firefox para el mismo dispositivo/SO.

¿Algunas ideas?

Gracias

Tengo el mismo problema. ¿Pudiste seleccionar la cámara trasera en IOS?

Gracias
helena

@cbnt
@HelenH
¿Resolviste este problema? Para mí, también veo ambas cámaras disponibles, pero cambiar o preseleccionar la cámara trasera siempre termina en volver a la cámara frontal :(

@schmich ¡ En primer lugar, muchas gracias por este increíble proyecto! :) En segundo lugar, ¿tiene alguna información sobre si se trata de un problema común de Iphone o cómo se puede solucionar?

Nota: Usar iphone 7 con iOS 11

Hola @Smux ,

Sí, siguió los pasos del problema n.º 54

git clone [email protected] :schmich/instascan.git
cd instascan/
npm instalar trago-cli -g
instalar npm
liberación de trago
cp dist/instascan.min.js /ruta/a/nuestras/bibliotecas/incluir/dir

Muchas gracias @schmich por este increíble proyecto también.

@HelenH
@Smux

Solucioné el problema usando esta bifurcación: https://github.com/PallasKatze/instascan
Sin embargo, aún debe seguir los pasos del problema n. ° 54

Pero está funcionando bien.
Solo un pequeño problema con Android, pero creo que es una versión específica.

Hola @cbnt ,
Quiero probar eso también. Pero el js minimizado es que la bifurcación se vincula al mismo js que la rama original.
No puedo encontrar ningún js minificado en el paquete. ¿Cómo podría hacer eso? ¿Hay alguien que pueda vincular un archivo js que funcione?
Gracias por adelantado.

Sé que esta es una pregunta básica y un poco fuera de tema, pero he estado tratando de producir una versión js y no he podido: instalé npm en mi servidor de prueba, pero npm sigue dando errores cuando intento publicar.

Mi solución, hasta que esto se solucione al permitir algunos ajustes de cámara personalizados, es configurar la primera cámara que contiene "atrás" dentro de su name :

if (cameras.length > 0) {
    var selectedCam = cameras[0];
    $.each(cameras, (i, c) => {
        if (c.name.indexOf('back') != -1) {
            selectedCam = c;
            return false;
        }
    });

    scanner.start(selectedCam);
} else {
    console.error('No cameras found.');
}

Siempre selecciona la cámara trasera.

Mi solución, hasta que esto se solucione al permitir algunos ajustes de cámara personalizados, es configurar la primera cámara que contiene "atrás" dentro de su name :

if (cameras.length > 0) {
    var selectedCam = cameras[0];
    $.each(cameras, (i, c) => {
        if (c.name.indexOf('back') != -1) {
            selectedCam = c;
            return false;
        }
    });

    scanner.start(selectedCam);
} else {
    console.error('No cameras found.');
}

Siempre selecciona la cámara trasera.

@clytras buena solución! Pero, ¿qué pasa si el móvil tiene más de una cámara trasera?

Probé esta solución y con la primera cámara trasera de la matriz, la visión es horrible con mucho zoom. No puedo escanear nada.

Pero, si uso la segunda cámara trasera devuelta, funciona perfectamente y puedo escanear todo.

Mi pregunta es si existe una forma de detectar cuál es la cámara trasera principal. Imagínese si el sitio web es utilizado por diferentes usuarios, lo que significa que tendrán diferentes dispositivos y la cantidad de cámaras traseras será diferente y el pedido será devuelto.

Muchas gracias.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

TomRauchenwald picture TomRauchenwald  ·  9Comentarios

schmich picture schmich  ·  13Comentarios

itdpong picture itdpong  ·  5Comentarios

harshad5498 picture harshad5498  ·  7Comentarios

bm2112 picture bm2112  ·  6Comentarios