User Video

Jeong Ha Seung·2021년 11월 6일

app.js

const frontendsocket = io();

const myface = document.getElementById("myface");
const mute = document.getElementById("mute");
const camera = document.getElementById("camera");

let myStream; //video와 audio 결합
let muted = false; //처음에는 음성을 받음
let cameraOff = false;	//처음에는 영상을 받음

async function getMedia() {
  try {
    myStream = await navigator.mediaDevices.getUserMedia({
      audio: true,
      video: true,
    });
    myface.srcObject = myStream;
  } catch (e) {
    console.log(e);
  }
}

getMedia();

function handleMuteButton() {
  if (!muted) {
    mute.innerText = "Unmute";
    muted = true;
  } else {
    mute.innerText = "Mute";
    muted = false;
  }
}
function handleCameraButton() {
  if (!cameraOff) {
    camera.innerText = "Turn Camera On";
    cameraOff = true;
  } else {
    camera.innerText = "Turn Camera Off";
    cameraOff = false;
  }
}

mute.addEventListener("click", handleMuteButton);
camera.addEventListener("click", handleCameraButton);

server.js

import http from "http";
import SocketIO from "socket.io";
import { instrument } from "@socket.io/admin-ui";
import express from "express";

const app = express();

const PORT = 3000;

app.set("view engine", "pug");
app.set("views", __dirname + "/views");
// 기본 path를 /public으로 설정
app.use("/public", express.static(__dirname + "/public"));
app.get("/", (_, res) => res.render("home"));
app.get("/*", (_, res) => res.redirect("/"));

const httpServer = http.createServer(app);

const wsServer = SocketIO(httpServer);

const handleListen = () => console.log(`Listening on >	http://localhost:${PORT}`);
httpServer.listen(PORT, handleListen);

home.pug

doctype html
html(lang="en")
    head
        meta(charset="UTF-8")
        meta(http-equiv="X-UA-Compatible", content="IE=edge")
        meta(name="viewport", content="width=device-width, initial-scale=1.0")
        title Noom
        link(rel="stylesheet", href="https://unpkg.com/mvp.css")
    body 
        header
            h1 Noom
        main
            div#mystream
                video#myface(autoplay,playsinline,width="100",height="100")
                button#mute Mute
                button#camera Turn Camera Off
        script(src="/socket.io/socket.io.js")
        script(src="/public/js/app.js")
profile
블로그 이전했습니다. https://morethan-haseung-log.vercel.app

0개의 댓글