دسترسی از دوربین کاربر با javascript
دوربین کاربر با javascript – با استفاده از getUserMedia می توانیم هم صدا و هم تصویر کاربر را به صورت stream داشته باشیم که قصدمان دسترسی از دوربین کاربر است .
همچنین جهت گرفتن عکس با canvas کار خواهیم کرد که شامل context هم جهت تنظیم طول و عرض عکس می شود .
دمو برنامه و لینک دانلود را می توانید از پایین مقاله مشاهده کنید .
فایل index.html
<!DOCTYPE html> <html lang="fa"> <head> <meta charset="UTF-8"> <title>Rapidcode.iR - سورس کد</title> <link rel="stylesheet" href="static/css/main.css"> </head> <body> <div class="container"> <a id="introduce" href="https://rapidcode.ir" target="_blank">رپید کد • کتابخانه مجازی برنامه نویسان</a> <video id="videoStream" width="720" height="405" autoplay></video> <button id="takeScreenShot">ذخیره تصویر</button> <canvas id="canvas" width="720" height="405"></canvas> </div> <script src="static/js/app.js"></script> </body> </html>
اسکریپت app.js
const video = document.getElementById('videoStream'); const takeScreenshot = document.getElementById("takeScreenShot"); const canvas = document.getElementById("canvas"); const context = canvas.getContext('2d'); if(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { navigator.mediaDevices.getUserMedia({ video: true }).then(function(stream) { video.srcObject = stream; video.play(); }); } takeScreenshot.addEventListener("click", function() { context.drawImage(video, 0, 0, video.getAttribute("width"), video.getAttribute("height")); });
فایل main.css
video{ display: block; } button{ display: block; margin-top: 25px; }
لیست نظرات
سلام خدا قوت تصویر ندارم Uncaught (in promise) NotAllowedError: play() can only be initiated by a user gesture.
درود ، بررسی شد سورس مشکلی نداره .
استاد چجور میشه این دوربین رو از صفحه سایت بنهان و به یه ادرس دیگه که خودمون فقط بتونیم ببینیم بفرستیم؟
سلام می تونید از hls استفاده کنید که یک مبحث مفصل هست .