{ video: { facingMode: "user" } }
{ video: { facingMode: { exact: "environment" } } }
์ด์ ๋ํ ์
๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
PR์ด ํ์ํ์ญ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์์ ์์น ๋ฐ/๋๋ instascan ์ธํฐํ์ด์ค๊ฐ ์ด๋ป๊ฒ ์๋ํด์ผ ํ๋์ง์ ๋ํ ํํธ๊ฐ ์์ต๋๊น?
Camera.getCameras()
์ ์ ์ฝ ์กฐ๊ฑด์ ์ ๋ฌํ๋ ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น?
getCameras
๊ตฌํ์ ์ ๊ณต๋ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก getUserMedia
๋ฅผ ์๋ํ๊ณ ์ด๋ฌํ ์ ์ฝ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ์นด๋ฉ๋ผ๋ฅผ ํํฐ๋งํ ์ ์์ต๋๋ค.
camera.js#L53 ์ฐธ์กฐ
์ด๊ฒ์ #22๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ์ผ ์๋ ์์ง๋ง start
๋ฉ์๋์์ ์ ๊ณต๋ ๊ธฐ๋ณธ๊ฐ๊ณผ ํด์๋ ์ ์ฝ ์กฐ๊ฑด์ ๋ณํฉํ๋ ค๋ฉด Camera
์์ฑ์์ ํด์๋ ์ ์ฝ ์กฐ๊ฑด์ ์ ๋ฌํด์ผ ํฉ๋๋ค.
camera.js#L20 ์ฐธ์กฐ
๋๊ตฐ๊ฐ์๊ฒ ๊ด์ฐฎ๋ค๊ณ ์๊ฐ๋๋ฉด ๊ธฐ๊บผ์ด PR์ ์ ์ถํ ์ํฅ์ด ์์ต๋๋ค. ;)
์ฌ์ฉ์ ์ ์ ์นด๋ฉ๋ผ ์ค์ ์ ์ผ๋ถ๋ฅผ ํ์ฉํ์ฌ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง ๋ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ 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.');
}
ํญ์ ํ๋ฐฉ ์นด๋ฉ๋ผ๋ฅผ ์ ํํฉ๋๋ค.
๋ด ๋์ ์๋ํ์ง๋ง ํ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด ์ํ์ผ๋ก ๋ค์งํ๋๋ค. ์ด๋ป๊ฒ ์๋ ์์น๋ก ๋๋๋ฆด ์ ์์ต๋๊น? ๊ฐ์ฌ ํด์
๋น์ ์์ ์ธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ค ์นด๋ฉ๋ผ๋ฅผ ์์ํ๋ ์๊ด์์ด ํญ์ ์ ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ํ์ํฉ๋๋ค. ์ด๋ ์ด์์ ๋ ์นด๋ฉ๋ผ๋ฅผ ๋ชจ๋ ๋ช
ํํ๊ฒ ๋ณผ ์ ์์ผ๋ฉฐ ํ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ๊ฐ์ ๋ก ์์ํ์ง๋ง ์ฌ์ ํ ์คํฌ๋ฆฝํธ๋ ํญ์ ์ ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ์์ํฉ๋๋ค.
์ต์ ๋ฒ์ ์ iOS๋ฅผ ๋ค์ด๋ก๋ํ์ต๋๋ค.
์ค์ :
์์ดํฐ 6s
iOS 11
์์ ์ฌํ.
๋ํ ๋์ผํ ์ฅ์น/OS์ Chrome ๋ฐ Firefox์์ ์นด๋ฉ๋ผ๋ฅผ ๋ก๋ํ์ง ์์ต๋๋ค.
์ด๋ค ์์ด๋์ด?
๊ฐ์ฌ ํด์
๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. IOS์์ ํ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ์ ํํ ์ ์์์ต๋๊น?
๊ฐ์ฌ ํด์
ํฌ๋
@cbnt
@HelenH
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์
จ์ต๋๊น? ๋๋ฅผ ์ํด ๋ ์นด๋ฉ๋ผ๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ง๋ง ํ๋ฉด ์นด๋ฉ๋ผ๋ก ์ ํํ๊ฑฐ๋ ๋ฏธ๋ฆฌ ์ ํํ๋ฉด ํญ์ ์ ๋ฉด ์นด๋ฉ๋ผ๋ก ๋ค์ ์ ํ๋ฉ๋๋ค.
@schmich ์ฐ์ ์ด ๋ฉ์ง ํ๋ก์ ํธ์ ์ ๋ง ๊ฐ์ฌ๋๋ฆฝ๋๋ค! :) ๋์งธ, ์ด๊ฒ์ด ์ผ๋ฐ์ ์ธ Iphone ๋ฌธ์ ์ธ์ง ๋๋ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด๊ฐ ์์ต๋๊น?
์ฐธ๊ณ : iOS 11์์ iPhone 7 ์ฌ์ฉ
์๋ ํ์ธ์ @Smux ๋
์, ๋ฌธ์ #54์ ๋จ๊ณ๋ฅผ ๋ฐ๋์ต๋๋ค.
์์ ํด๋ก [email protected] :schmich/instascan.git
CD ์ธ์คํ์ค์บ/
npm ์ค์น gulp-cli -g
npm ์ค์น
๊ฟ๊บฝ๊ฟ๊บฝ
cp dist/instascan.min.js /path/to/our/libraries/include/dir
์ด ๋ฉ์ง ํ๋ก์ ํธ์ ๋ํด @schmich์๊ฒ๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@HelenH
@Smux
์ด ํฌํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค: https://github.com/PallasKatze/instascan
๊ทธ๋๋ ๋ฌธ์ #54์ ๋จ๊ณ๋ฅผ ๋ฐ๋ผ์ผ ํฉ๋๋ค.
ํ์ง๋ง ์ ์๋ํฉ๋๋ค.
Android์ ์ฝ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ง๋ง ํ๋์ ํน์ ๋ฒ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์๋
ํ์ธ์ @cbnt์
๋๋ค .
๋๋ ํด๋ณด๊ณ ์ถ๋ค. ๊ทธ๋ฌ๋ ์ถ์๋ js๋ ์๋ ๋ถ๊ธฐ์ ๋์ผํ js์ ๋ํ ๋งํฌ ๋งํฌ์
๋๋ค.
ํจํค์ง์์ ์ถ์๋ js๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์ด๋ป๊ฒ ํ๋ฉด ๋ ๊น์? ํ๋์ ์๋ํ๋ js ํ์ผ์ ์ฐ๊ฒฐํ ์ ์๋ ์ฌ๋์ด ์์ต๋๊น?
๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ด๊ฒ์ด ๊ธฐ๋ณธ์ ์ธ ์ง๋ฌธ์ด๊ณ ์ฃผ์ ์์ ์กฐ๊ธ ๋ฒ์ด๋๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๋ฆด๋ฆฌ์ค js๋ฅผ ์์ฑํ๋ ค๊ณ ์๋ํ์ง๋ง ํ ์ ์์์ต๋๋ค. ํ ์คํธ ์๋ฒ์ npm์ ์ค์นํ์ง๋ง ๊ฒ์ํ๋ ค๊ณ ํ ๋ npm์์ ๊ณ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ฌ์ฉ์ ์ ์ ์นด๋ฉ๋ผ ์ค์ ์ ์ผ๋ถ๋ฅผ ํ์ฉํ์ฌ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง ๋ด ํด๊ฒฐ ๋ฐฉ๋ฒ์
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.'); }
ํญ์ ํ๋ฐฉ ์นด๋ฉ๋ผ๋ฅผ ์ ํํฉ๋๋ค.
๋ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉ์ ์ง์ ์นด๋ฉ๋ผ ์ค์ ์ ์ผ๋ถ๋ฅผ ํ์ฉํ์ฌ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง
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.'); }
ํญ์ ํ๋ฐฉ ์นด๋ฉ๋ผ๋ฅผ ์ ํํฉ๋๋ค.
@clytras ์ข์ ์๋ฃจ์ ์ ๋๋ค! ๊ทธ๋ฌ๋ ํด๋ ์ ํ์ ๋ ๊ฐ ์ด์์ ํ๋ฉด ์นด๋ฉ๋ผ๊ฐ ์์ผ๋ฉด ์ด๋ป๊ฒ๋ฉ๋๊น?
๋๋ ์ด ์๋ฃจ์ ์ ์๋ํ๊ณ ์ด๋ ์ด์ ์ฒซ ๋ฒ์งธ ํ๋ฉด ์นด๋ฉ๋ผ๋ก ๋ง์ ์ค์ผ๋ก ์์ผ๊ฐ ๋์ฐํฉ๋๋ค. ์๋ฌด๊ฒ๋ ์ค์บํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ ๋ฒ์งธ ํ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒฝํ๊ฒ ์๋ํ๊ณ ๋ชจ๋ ๊ฒ์ ์ค์บํ ์ ์์ต๋๋ค.
์ ์ง๋ฌธ์ ๋ฉ์ธ ํ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ๊ฐ์งํ๋ ๋ฐฉ๋ฒ์ด ์๋์ง ์ฌ๋ถ์ ๋๋ค. ์น์ฌ์ดํธ๋ฅผ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. ์ฆ, ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ฅ์น๋ฅผ ์ฌ์ฉํ๊ณ ํ๋ฉด ์นด๋ฉ๋ผ์ ์๊ฐ ๋ค๋ฅด๊ณ ์ฃผ๋ฌธ์ด ๋ฐํ๋๋ค๋ ์๋ฏธ์ ๋๋ค.
์ ๋ง ๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฌ์ฉ์ ์ ์ ์นด๋ฉ๋ผ ์ค์ ์ ์ผ๋ถ๋ฅผ ํ์ฉํ์ฌ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง ๋ด ํด๊ฒฐ ๋ฐฉ๋ฒ์
name
๊ฐ ์์ "๋ค๋ก"๊ฐ ํฌํจ๋ ์ฒซ ๋ฒ์งธ ์นด๋ฉ๋ผ๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋๋ค.ํญ์ ํ๋ฐฉ ์นด๋ฉ๋ผ๋ฅผ ์ ํํฉ๋๋ค.