Instascan: 支持前置/后置摄像头

创建于 2016-07-19  ·  11评论  ·  资料来源: schmich/instascan

最有用的评论

我的解决方法是设置第一个在其name值内包含“back”的相机,直到通过允许一些自定义相机设置来解决此问题:

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.');
}

它始终选择后置摄像头。

所有11条评论

对此有何更新?
你需要PR吗? 如果是,您是否有任何提示从哪里开始和/或 instascan 界面的行为方式?

您如何看待将约束传递给Camera.getCameras()

getCameras实现可以尝试使用提供的约束getUserMedia并过滤满足这些约束的相机。
camera.js#L53

这也可能是修复 #22 的一种方法,但随后需要将分辨率约束传递给Camera构造函数,以将分辨率约束与start方法中提供的默认值合并。
camera.js#L20

如果对任何人来说都可以,我愿意提交 PR ;)

我的解决方法是设置第一个在其name值内包含“back”的相机,直到通过允许一些自定义相机设置来解决此问题:

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.');
}

它始终选择后置摄像头。

我的工作结束了,但是当我尝试使用后置摄像头时,它会水平翻转..如何将其放回通常的位置? 谢谢

我遇到了一个不寻常的问题。 不管我启动哪个摄像头,它总是显示前置摄像头。 我可以清楚地看到阵列上的两个摄像头,我强制启动后置摄像头,但脚本总是启动前置摄像头。
刚刚下载了最新版本的 iOS。
设置:
iPhone 6s
iOS 11
苹果浏览器。

也不会在同一设备/操作系统的 Chrome 和 Firefox 上加载相机。

有任何想法吗?

谢谢

我有同样的问题。 你能在IOS上选择后置摄像头吗

谢谢
海伦

@cbnt
@海伦H
你解决了这个问题吗? 对我来说,我也看到两个摄像头都可用,但切换或预选到后置摄像头总是以翻转回前置摄像头结束:(

@schmich首先非常感谢您对这个了不起的项目! :) 其次,您是否有任何关于这是否是常见的 Iphone 问题或如何解决的信息?

注意:使用 iphone 7 和 iOS 11

@Smux

是的,遵循问题 #54 中的步骤

git clone [email protected] :schmich/instascan.git
cd instascan/
npm install gulp-cli -g
npm 安装
大口释放
cp dist/instascan.min.js /path/to/our/libraries/include/dir

也非常感谢@schmich这个很棒的项目。

@海伦H
@Smux

我使用这个叉子解决了这个问题: https ://github.com/PallasKatze/instascan
仍然需要按照问题 #54 中的步骤进行操作

但它工作正常。
只是 Android 的一个小问题,但我相信它是一个特定的版本。

@cbnt
我也想试试。 但是缩小的 js 是 fork 链接到与原始分支相同的 js。
我在包中找不到任何缩小的 js。 我怎么能这样做? 有没有人可以链接一个工作的js文件?
提前致谢。

我知道这是一个基本问题,而且有点离题,但我一直在尝试制作发布版 js,但一直没能 - 在我的测试服务器上安装了 npm,但是当我尝试发布时,npm 不断出错。

我的解决方法是设置第一个在其name值内包含“back”的相机,直到通过允许一些自定义相机设置来解决此问题:

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.');
}

它始终选择后置摄像头。

我的解决方法是设置第一个在其name值中包含“back”的相机,直到通过允许一些自定义相机设置来解决这个问题:

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.');
}

它始终选择后置摄像头。

@clytras不错的解决方案! 但是如果手机有多个后置摄像头会怎样?

我已经尝试过这个解决方案,并且使用阵列的第一个后置摄像头,视觉效果很糟糕,变焦很大。 我无法扫描任何东西。

但是,如果我使用返回的第二个后置摄像头,它可以完美运行,我可以扫描所有内容。

我的问题是是否存在一种方法来检测哪个是主后置摄像头? 想象一下,如果网站被不同的用户使用,这意味着他们会有不同的设备,后置摄像头的数量也会不同,返回的订单也会不同。

非常感谢。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

mairh picture mairh  ·  8评论

marvinex123 picture marvinex123  ·  11评论

werthdavid picture werthdavid  ·  5评论

schmich picture schmich  ·  13评论

igun997 picture igun997  ·  4评论