Instascan: Prise en charge des caméras avant/arrière

Créé le 19 juil. 2016  ·  11Commentaires  ·  Source: schmich/instascan

Commentaire le plus utile

Ma solution de contournement, jusqu'à ce que cela soit corrigé en autorisant certains paramètres de caméra personnalisés, consiste à définir la première caméra qui contient "back" dans sa 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.');
}

Il sélectionne toujours la caméra arrière.

Tous les 11 commentaires

Des mises à jour à ce sujet ?
Avez-vous besoin d'un RP ? Si oui, avez-vous des indices par où commencer et/ou comment l'interface instascan devrait se comporter ?

Que pensez-vous de passer des contraintes à Camera.getCameras() ?

L'implémentation getCameras pourrait essayer de getUserMedia avec les contraintes fournies et filtrer la caméra qui remplit ces contraintes.
voir camera.js#L53

Cela pourrait aussi être un moyen de corriger #22, mais il faudrait alors passer les contraintes de résolution au constructeur Camera , pour fusionner les contraintes de résolution avec la valeur par défaut fournie dans la méthode start .
voir camera.js#L20

Si cela convient à quelqu'un, je suis prêt à soumettre un PR ;)

Ma solution de contournement, jusqu'à ce que cela soit corrigé en autorisant certains paramètres de caméra personnalisés, consiste à définir la première caméra qui contient "back" dans sa 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.');
}

Il sélectionne toujours la caméra arrière.

ma fin ça marche mais quand j'essaie d'utiliser la caméra arrière, elle se retourne horizontalement... comment la remettre dans sa position habituelle ? Merci

J'ai un problème inhabituel. Peu importe la caméra que je démarre, elle affiche toujours la caméra frontale. Je peux clairement voir les deux caméras sur le tableau et je force à démarrer la caméra arrière, mais le script démarre toujours la caméra avant.
Je viens de télécharger la version la plus récente d'iOS.
Réglages:
iPhone 6s
iOS 11
Safari.

Ne charge pas non plus la caméra sur Chrome et Firefox pour le même appareil/OS.

Des idées?

Merci

J'ai le même problème. Avez-vous pu sélectionner la caméra arrière sur IOS

Merci
Hélène

@cbnt
@HélèneH
Avez-vous résolu ce problème? Pour moi, je vois également les deux caméras disponibles, mais le passage ou la présélection de la caméra arrière finit toujours par revenir à la caméra avant :(

@schmich Tout d'abord merci beaucoup pour ce projet génial ! :) Deuxièmement, avez-vous des informations pour savoir s'il s'agit d'un problème iPhone courant ou comment cela peut être résolu ?

Remarque : Utilisation de l'iphone 7 avec iOS 11

Salut @Smux ,

Oui, suivez les étapes du numéro 54

git clone [email protected] :schmich/instascan.git
cd instascan/
npm installer gulp-cli -g
installation npm
libération de la gorgée
cp dist/instascan.min.js /path/to/our/libraries/include/dir

Merci beaucoup @schmich pour ce projet génial aussi.

@HélèneH
@Smux

J'ai résolu le problème en utilisant ce fork : https://github.com/PallasKatze/instascan
Cependant, vous devez toujours suivre les étapes du numéro 54

Mais ça marche bien.
Juste un petit problème avec Android mais je crois que c'est une version spécifique.

Salut @cbnt ,
Je veux essayer ça aussi. Mais le js minifié est que la fourche renvoie au même js que la branche d'origine.
Je ne trouve aucun js minifié dans le package. Comment pourrais-je faire cela ? Y a-t-il quelqu'un qui peut lier un fichier js de travail?
Merci d'avance.

Je sais que c'est une question de base et un peu hors sujet, mais j'ai essayé de produire une version js et je n'ai pas pu - installé npm sur mon serveur de test, mais npm continue de donner des erreurs lorsque j'essaie de publier.

Ma solution de contournement, jusqu'à ce que cela soit corrigé en autorisant certains paramètres de caméra personnalisés, consiste à définir la première caméra qui contient "back" dans sa 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.');
}

Il sélectionne toujours la caméra arrière.

Ma solution de contournement, jusqu'à ce que cela soit corrigé en autorisant certains paramètres de caméra personnalisés, consiste à définir la première caméra qui contient "back" dans sa 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.');
}

Il sélectionne toujours la caméra arrière.

@clytras belle solution ! Mais que se passe-t-il si le téléphone portable a plus d'une caméra arrière ?

J'ai essayé cette solution et avec la première caméra arrière de la baie la vision est horrible avec beaucoup de zoom. Je n'arrive pas à scanner quoi que ce soit.

Mais, si j'utilise la deuxième caméra arrière retournée, cela fonctionne parfaitement et je peux tout scanner.

Ma question est de savoir s'il existe un moyen de détecter quelle est la caméra arrière principale ? Imaginez si le site Web est utilisé par différents utilisateurs, ce qui signifie qu'ils auront différents appareils et que le nombre de caméras arrière sera différent et que la commande sera renvoyée.

Merci beaucoup.

Cette page vous a été utile?
0 / 5 - 0 notes