getUserMedia()로 브라우저로부터 단말의 영상과 음성을 취득하는 방법.

7765 단어 WebRTC

목적



getUserMedia()로 브라우저로부터 단말의 영상과 음성을 취득한다.

환경


  • OS: macOS Mojave 10.14.4
  • 브라우저: Google 크롬 73.0.3683.103
  • 편집기: Visual Studio Code 1.33.0
  • 로컬 서버: Live Server (VSCode 확장)

  • 목표





    출처



    javascript



    js/main.js
    "use strict";
    
    // 映像と音声をストリーミングする
    const mediaStreamConstraints = {
      video: true,
      audio: true
    };
    
    // ストリームが読み込まれる動画要素
    const localVideo = document.querySelector("video");
    
    // 動画で再生されるlocalStream。
    let localStream;
    
    // video要素にMediaStreamを追加する処理。
    function gotLocalMediaStream(mediaStream) {
      localStream = mediaStream;
      localVideo.srcObject = mediaStream;
    }
    
    // エラー処理
    function handleLocalMediaStreamError(error) {
      console.log("navigator.getUserMedia error: ", error);
    }
    
    // MediaStreamを初期化
    navigator.mediaDevices
      .getUserMedia(mediaStreamConstraints)
      .then(gotLocalMediaStream)
      .catch(handleLocalMediaStreamError);
    

    개요



    js/main.js
    "use strict";
    
  • 'use strict';를 사용하면 정확한 오류 검사가 발생합니다.

  • js/main.js
    // 映像と音声をストリーミングする
    const mediaStreamConstraints = {
      video: true,
      audio: true
    };
    
  • constraints 인수로 취득하는 미디어를 지정할 수 있다.

  • js/main.js
    // 動画で再生されるlocalStream。
    let localStream;
    
    // video要素にMediaStreamを追加する処理。
    function gotLocalMediaStream(mediaStream) {
      localStream = mediaStream;
      localVideo.srcObject = mediaStream;
    }
    
  • getUserMedia()가 성공하면 카메라의 비디오와 오디오가 비디오 요소의 소스로 설정됩니다.

  • html



    index.html
    <!DOCTYPE html>
    <html lang="jp">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>WebRTC - getUserMedia()</title>
      <link rel="stylesheet" href="./css/main.css">
    </head>
    <body>
      <h1>WebRTC - getUserMedia()</h1>
      <video autoplay playsinline></video>
      <script src="js/main.js"></script>
    </body>
    </html>
    

    개요



    index.html
    <video autoplay playsinline></video>
    
  • autoplay는 반드시 설정한다.

  • css



    css/main.css
    video {
      max-width: 100%;
      width: 320px;
    }
    
  • 동영상의 적절한 크기와 최대 크기를 설정하기 위해 width와 max-width를 추가한다. 고도는 자동으로 계산된다.

  • 기타


  • 브라우저 콘솔에서 localStream.getVideoTracks()를 두드리면 videoTracks 정보를 얻을 수 있습니다.


  • 인용원



    Real time communication with WebRTC

    좋은 웹페이지 즐겨찾기