4 هفته قبل

بدون دیدگاه

دسترسی به دوربین با استفاده از جاوااسکریپت

دریافت دوربین و نمایش آن در صفحه HTML با JavaScript

در این مقاله بهتون آموزش میدیم که چطور با استفاده از جاوااسکریپت ، برای استفاده از دوربین کاربر اجازه بگیرید ، صفحه دوربین رو به طور لایو در صفحه html به نمایش بزارید، و یا استفاده از دوربین رو پاز (pause) کنید. همچنین اشاره های ریزی برای استفاده از صدا هم میکنیم.

قبل از شروع، لازم به ذکر هست که کد اکسپلور صرفا قصد آموزش دارد و هیچ گونه مسئولیتی در برابر استفاده هایی که از آموزش ها می شود را بر عهده نمی گیرد.

آماده سازی فایل HTML

اول از همه ، فایل html خودمون رو مینویسیم:

<!DOCTYPE html>
<html lang="fa">
<head>
  <meta charset="UTF-8">
  <title>نمایش دوربین کاربر</title>
</head>
<body>
  <h1>نمایش دوربین کاربر</h1>

  <video id="myVideo" width="640" height="360"></video>

  <button id="startButton">شروع</button>
  <button id="stopButton">توقف</button>


</body>
</html>

اگر html بلد باشید، میدونید که یک سری بخش ها مثل title ، h1 ، meta و … لزومی نداره که باشن، اما اندازه تگ video و id ها رو فراموش نکنین.

یک خبر بخوانید : ویژگی های جدید NodeJS 23.0

یافتن المنت ها و ارسال درخواست استفاده از دوربین

حالا به سراغ جاوااسکریپت می رویم. واضح هست که اول باید دسترسی دوربین رو از کاربر بگیریم ، مثلا شاید پروژه مد نظر شما برای اعمال فیلتر روی تصویر کاربر باشد، پس نیاز دارید که دوربین کاربر رو با اجازه خود کاربر، استفاده کنید. و البته که باید المنت های صفحه html رو هم پیدا بکنیم ، پس این کد رو مینویسیم:

const myVideo = document.getElementById('myVideo');
const startButton = document.getElementById('startButton');
const stopButton = document.getElementById('stopButton');
navigator.mediaDevices.getUserMedia({ video: true })
  .then(function(stream) {
    
  })
  .catch(function(error) {
    
    console.error("Error accessing the camera:", error);
  });

در 3 خط اول ، فقط video و دکمه های توی صفحه html رو پیدا کردیم. بعد از اون ، درخواست استفاده از دوربین رو دادیم (دقت کنید : درخواست استفاده رو دادیم، اما هنوز استفاده ای نکردیم!)، که وقتی کاربر صفحه رو باز میکنه با همچین درخواستی مواجه میشه:

درخواست استفاده از دوربین

این درخواستی که ارسال میشه ، کار متد getUserMedia هست و در صورت قبولی درخواست ، بهمون یک MediaStream برمیگردونه. که با اون ، درخواست تصویر (یا video) رو دادیم ، اگر قصد دریافت صدا رو هم داشتیم، مینوشتیم : { video: true, audio: true } و دو بخش (then و catch) رو گذاشتیم که اگر درخواست ما رد شد کد ما میره توی بخش catch و توی کنسول ، ارور ما نوشته میشه. اگر هم رد نشد که میریم توی then و ادامه کارمون.

یک مقاله دیگر بخوانید : آموزش تابع CSS Clamp برای طراحی ریسپانسیو

نمایش و توقف دوربین

توی بخشی که برای قبول شدن درخواستمون درست کردیم، این کد رو مینویسیم:

startButton.addEventListener('click', function() {
      myVideo.play();
    });

با استفاده از این کد ، داریم توی اون video توی صفحه html ، دوربین کاربر رو به نمایش میزاریم. و البته یادمون نرفته که دکمه pause هم گذاشته بودیم:

stopButton.addEventListener('click', function() {
      myVideo.pause();
    });

نتیجه گیری

در نهایت ، حالا میتوانید به ادامه ساخت برنامه تان برسید،برنامتون میتونه برنامه تشخیص چهره باشه، برنامه تشخیص اشیاء ، اعمال فیلتر بر چهره، تشخیص هویت و … برنامه شما چیه؟ در ضمن، این کد نهایی هست که به صورت کامل براتون قرار دادیم:

<!DOCTYPE html>
<html lang="fa">
<head>
  <meta charset="UTF-8">
  <title>نمایش دوربین کاربر</title>
</head>
<body>
  <h1>نمایش دوربین کاربر</h1>

  <video id="myVideo" width="640" height="360"></video>

  <button id="startButton">شروع</button>
  <button id="stopButton">توقف</button>

  <script>
    const myVideo = document.getElementById('myVideo');
    const startButton = document.getElementById('startButton');
    const stopButton = document.getElementById('stopButton');

    navigator.mediaDevices.getUserMedia({ video: true })
      .then(function(stream) {
        myVideo.srcObject = stream;
      })
      .catch(function(error) {
        console.error("Error accessing the camera:", error);
      });

    startButton.addEventListener('click', function() {
      myVideo.play();
    });

    stopButton.addEventListener('click', function() {
      myVideo.pause();
    });
  </script>
</body>
</html>

شما قصد دارید از این آموزش ، در چه زمینه ای استفاده کنید؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیشنهاد های کد اکسپلور