찾다
웹 프론트엔드HTML 튜토리얼H5 비디오 태그가 카메라를 작동합니다.

이번에는 H5 비디오 태그 작동 카메라를 가져왔습니다. H5 비디오 태그 작동 카메라의 주의 사항은 무엇입니까? 다음은 실제 사례입니다.

비디오 태그를 이용한 HTML5의 카메라 선택 기능 구현에 대한 자세한 설명

1.html

// jquery reference  
// <script></script> 
// 
  <input> 
  <button>Open WebCam</button> 
  <select></select> 
  <p> 
    <video></video> 
    <canvas></canvas> 
    <canvas></canvas> 
    <button>Snap Photo</button> 
  </p>

2.

javascript

<script>  
//// Elements for taking the snapshot 
    var canvasPreview = document.getElementById(&#39;canvasPreview&#39;); 
    var canvasUpload = document.getElementById(&#39;canvasUpload&#39;); 
    var contextPreview = canvasPreview.getContext(&#39;2d&#39;); 
    var contextUpload = canvasUpload.getContext(&#39;2d&#39;); 
    //#################### Video Source #######################3 
    var videoElement = document.querySelector(&#39;video&#39;); 
    var videoSelect = document.querySelector(&#39;select#videoSource&#39;); 
    navigator.mediaDevices.enumerateDevices() 
      .then(gotDevices).then(getStream).catch(handleError); 
    videoSelect.onchange = getStream;  
    function gotDevices(deviceInfos) { 
      for (var i = 0; i < deviceInfos.length; ++i) { 
        var deviceInfo = deviceInfos[i]; 
        var option = document.createElement(&#39;option&#39;); 
        option.value = deviceInfo.deviceId; 
        if (deviceInfo.kind === &#39;videoinput&#39;) { 
          option.text = deviceInfo.label || 
            &#39;camera &#39; + 
            (videoSelect.length + 1); 
          videoSelect.appendChild(option); 
        } else { 
          console.log(&#39;Found ome other kind of source/device: &#39;, deviceInfo); 
        } 
      } 
    } 
    var _streamCopy = null; 
    function getStream() { 
      if (_streamCopy != null) { 
        try { 
          _streamCopy.stop(); // if this method doesn&#39;t exist, the catch will be executed. 
        } catch (e) { 
          _streamCopy.getVideoTracks()[0].stop(); // then stop the first video track of the stream 
        } 
      }       
      var constraints = { 
        audio:false, 
        video: { 
          optional: [ 
            { 
              sourceId: videoSelect.value 
            } 
          ] 
        } 
      };       
      navigator.mediaDevices.getUserMedia(constraints).then(gotStream).catch(handleError); 
    } 
    function gotStream(stream) { 
      _streamCopy = stream; // make stream available to console 
      videoElement.srcObject = stream; 
    } 
    function handleError(error) { 
      alert(error.name + ": " + error.message); 
    } 
    //######################## End Video Source #################  
    // Get access to the camera! 
    if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { 
      navigator.mediaDevices.getUserMedia({ video: true }).then(function(stream) { 
        videoElement.src = window.URL.createObjectURL(stream); 
        videoElement.play(); 
      }); 
    } else { 
      document.getElementById("pnlVideo1").style.display = "none"; 
    } 
    //// Trigger photo take 
    document.getElementById("snap").addEventListener("click", 
      function() { 
        contextPreview.drawImage(videoElement, 0, 0, 300, 224); 
        contextUpload.drawImage(videoElement, 0, 0, 300, 224); 
        document.getElementById("video").style.display = "none"; 
        document.getElementById("snap").style.display = "none"; 
        document.getElementById("canvasPreview").style.display = "block"; 
        var image = document.getElementById("canvasUpload").toDataURL("image/jpeg"); 
        image = image.replace(&#39;data:image/jpeg;base64,&#39;, &#39;&#39;); 
        $("#imgValue").val(image);    
        alert("image value :" + image); 
      });  
    //// Trigger photo take 
    document.getElementById("btnOpen1").addEventListener("click", 
      function() { 
        document.getElementById("vdoOne").style.display = "block"; 
        document.getElementById("video").style.display = "block"; 
        document.getElementById("snap").style.display = "block"; 
        document.getElementById("canvasPreview").style.display = "none"; 
      }); 
       
</script>
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 믿습니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

django 컨트롤 및 매개 변수 사용에 대한 자세한 설명


jquery를 사용하여 모두 선택 및 단일 선택 반전 구현


jQuery 플러그인 FusionCharts를 사용하여 원형 차트 그리기


위 내용은 H5 비디오 태그가 카메라를 작동합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
如何在 Windows 11 中修复 VIDEO DXGKRNL 致命错误如何在 Windows 11 中修复 VIDEO DXGKRNL 致命错误Apr 13, 2023 pm 08:22 PM

点击进入:ChatGPT工具插件导航大全一些用户抱怨他们的计算机经常崩溃,停止代码为VIDEO DXGKRNL FATAL ERROR。此特定问题仅偶尔发生,并且错误检查值为 0x00000113,这表明 Microsoft DirectX 图形内核子系统中存在违规,如错误检查值所示。通常,当损坏的驱动程序干扰图形卡图形处理器的正常运行时,就会出现错误。如果您目前正在努力解决此特定问题,我们的文章将为您提供各种高质量的故障排除技巧。您会在下面找到遇到完全相同错误的其他用户已成功使用的各种方法。是

html5的div一行可以放两个吗html5的div一行可以放两个吗Apr 25, 2022 pm 05:32 PM

html5的div元素默认一行不可以放两个。div是一个块级元素,一个元素会独占一行,两个div默认无法在同一行显示;但可以通过给div元素添加“display:inline;”样式,将其转为行内元素,就可以实现多个div在同一行显示了。

Motorola Razr 50 Ultra shows up in leaked teaser video with waterproof case and huge secondary displayMotorola Razr 50 Ultra shows up in leaked teaser video with waterproof case and huge secondary displayJun 20, 2024 pm 09:31 PM

Over the past few weeks, the most important specifications and the euro prices of the Motorola Razr 50 and the Razr 50 Ultra have been leaked. Now the enormously reliable leaker @MysteryLupin was able to publish the teaser video embedded below, which

html5中列表和表格的区别是什么html5中列表和表格的区别是什么Apr 28, 2022 pm 01:58 PM

html5中列表和表格的区别:1、表格主要是用于显示数据的,而列表主要是用于给数据进行布局;2、表格是使用table标签配合tr、td、th等标签进行定义的,列表是利用li标签配合ol、ul等标签进行定义的。

Snapdragon X Elite CPU performance nearly identical on battery and plugged-in in Vivobook S15 benchmarksSnapdragon X Elite CPU performance nearly identical on battery and plugged-in in Vivobook S15 benchmarksJun 20, 2024 pm 03:59 PM

Despite the hype surrounding the Qualcomm Snapdragon X Elite, it has been a rather mediocre launch. In our review, we found that the most impressive part of the new Qualcomm Snapdragon X Elite X1E-78-100-powered Asus Vivobook S 15 was the seamlessnes

深入了解HTML中的video元素深入了解HTML中的video元素Feb 24, 2024 pm 08:18 PM

HTML中video视频标签详解HTML5中的video标签是一种用于在网页上播放视频的标签。它可以使用不同的格式来呈现视频,例如MP4、WebM、Ogg等等。在本篇文章中,我们将详细介绍video标签的使用方法,并提供具体的代码示例。基本结构下面是video标签的基本结构:

Snapdragon X Elite CPU performance nearly identical on battery vs AC power in Vivobook S15 benchmarksSnapdragon X Elite CPU performance nearly identical on battery vs AC power in Vivobook S15 benchmarksJun 21, 2024 am 06:50 AM

Despite the hype surrounding the Qualcomm Snapdragon X Elite, it has been a rather mediocre launch. In our review, we found that the most impressive part of the new Qualcomm Snapdragon X Elite X1E-78-100-powered Asus Vivobook S 15 was the seamlessnes

Pixel 9 Pro XL vs iPhone 15 Pro Max camera comparison reveals surprising Google wins in video and zoom performancePixel 9 Pro XL vs iPhone 15 Pro Max camera comparison reveals surprising Google wins in video and zoom performanceAug 24, 2024 pm 12:32 PM

The Google Pixel 9 Pro and Pro XL are Google's answers to the likes of the Samsung Galaxy S24 Ultra and the Apple iPhone 15 Pro and Pro Max. Daniel Sin on YouTube(watch below) has compared the Google Pixel 9 Pro XL to the iPhone 15 Pro Max with some

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는