Instascan: рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: 'URL' рдкрд░ 'createObjectURL' рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓: рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдЬреВрди 2020  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: schmich/instascan

рдирдорд╕реНрддреЗ,
рдпрд╣ рддреНрд░реБрдЯрд┐ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдореИрдВ рдХреИрдорд░реЗ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рдореЗрд░реА рдХреЛрдб рдлрд╝рд╛рдЗрд▓ рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣ рд╣реА рдереАред
рдореИрдВ рдЕрднреА рднреА рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рд╣реВрдБ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдзрдиреНрдпрд╡рд╛рдж

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдареАрдХ рдХрд░:

URL.createObjectURL рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреА рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╕реАрдзреЗ srcObject рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЗ рдЕрдЯреИрдЪ рдХрд░реЗрдВред
рд╕рд┐рдлрд╛рд░рд┐рд╢ : https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#Using_object_URLs_for_media_streams

const instascan = require('instascan');

const args = { video: document.getElementById('preview') };

window.URL.createObjectURL = (stream) => {
            args.video.srcObject = stream;
            return stream;
};

const scanner = new instascan.Scanner(args);

...

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдБ рдореИрдВ реи

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ

рдореИрдВ рднреА

https://github.com/zxing-js/library рдореБрдЭреЗ рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдорд┐рд▓реА, рдХреНрдпреВрдЖрд░ рдХреЛрдб рдФрд░ рдмрд╛рд░рдХреЛрдб рд╕реНрдХреИрдирд░ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд┐рдпрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реБрдХрд╛ рд╣реБрдЖ рд╣реИред
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдкрд░ рдмрдЧ рдлрд┐рдХреНрд╕ рдХрд┐рдпрд╛ рдФрд░ npm рдкрд░ рдирдП рдкреИрдХреЗрдЬ рдирд╛рдо рдХреЗ рд╕рд╛рде рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред

npm рдЗрдВрд╕реНрдЯрд╛рд▓ -- рд╕реЗрд╡ рдЗрдВрд╕реНрдЯрд╛рд╕реНрдХреИрди-рдиреНрдпреВ

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрди рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛:
рдореЗрд░рд╛ рдХрд╛рдВрдЯрд╛: https://github.com/fabionaspolini/react-instascan

рдирдП рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
npm рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдЗрдВрд╕реНрдЯрд╛рд╕реНрдХреИрди-рдирдпрд╛ рдЗрдВрд╕реНрдЯрд╛рд╕реНрдХреИрди-рдЙрдордб-рдирдпрд╛ - рд╕рд╣реЗрдЬреЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдареАрдХ рдХрд░:

URL.createObjectURL рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреА рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╕реАрдзреЗ srcObject рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЗ рдЕрдЯреИрдЪ рдХрд░реЗрдВред
рд╕рд┐рдлрд╛рд░рд┐рд╢ : https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#Using_object_URLs_for_media_streams

const instascan = require('instascan');

const args = { video: document.getElementById('preview') };

window.URL.createObjectURL = (stream) => {
            args.video.srcObject = stream;
            return stream;
};

const scanner = new instascan.Scanner(args);

...

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕