JavaScript로 화면 공유 애플리케이션을 만드는 방법
21337 단어 htmljavascriptcsswebdev
이 기사에서는 Screen Capture API를 통해 JavaScript로 화면 공유 애플리케이션을 만드는 방법을 보여줍니다.
및 그
getDisplayMedia()
기술. 이렇게 하면 화면의 절반 또는 전체를 캡처하여 다른 사용자와 공유할 수 있습니다.WebRTC 회의 세션 전체에서 사용자.
초기 단계:
좋아하는 IDE에서 새 프로젝트 만들기
이 튜토리얼에서는 VScode를 사용할 것입니다. 원하는 편집기를 자유롭게 사용하십시오. 계속해서 설정하겠습니다.
우리의 html 코드.
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Screen Sharing</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div style="width:80%;background: grey;margin: auto;">
<video id="video" autoplay playsinline muted></video>
</div>
<div style="width:80%;margin: auto;padding-top:10px ;">
<button class="btn btn-primary" id="start"> Start Screen Sharing</button>
<button class="btn btn-secondary" id="stop"> Stop</button>
</div>
</body>
</html>
라이브 서버를 시작하고 브라우저에서 index.html 파일을 엽니다. 다음과 같은 페이지가 표시됩니다.
자바스크립트:
다음으로 index.html 파일에 JavaScript 코드를 추가해야 합니다. 계속해서 본문 섹션에 스크립트 태그를 추가하십시오.
index.html 파일을 열고 다음 코드를 추가합니다.
const videoElem = document.getElementById("video");
const startElem = document.getElementById("start");
const stopElem = document.getElementById("stop");
// Options for getDisplayMedia()
var displayMediaOptions = {
video: {
cursor: "always",
height: 1000,
width: 1200
},
audio: false
};
// Set event listeners for the start and stop buttons
startElem.addEventListener("click", function (evt) {
startCapture();
}, false);
// Stop the screen capture
stopElem.addEventListener("click", function (evt) {
stopCapture();
}, false);
// Start the screen capture
async function startCapture() {
try {
videoElem.srcObject = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
dumpOptionsInfo();
} catch (err) {
// Handle error
console.error("Error: " + err);
}
}
// Stop the stream
function stopCapture(evt) {
let tracks = videoElem.srcObject.getTracks();
tracks.forEach(track => track.stop());
videoElem.srcObject = null;
}
// Dump the available media track capabilities to the console
function dumpOptionsInfo() {
const videoTrack = videoElem.srcObject.getVideoTracks()[0];
console.info("Track settings:");
console.info(JSON.stringify(videoTrack.getSettings(), null, 2));
console.info("Track constraints:");
console.info(JSON.stringify(videoTrack.getConstraints(), null, 2));
}
애플리케이션 테스트
이제 애플리케이션을 테스트할 수 있습니다. 브라우저에서 index.html 파일을 열고 시작 버튼을 클릭하여
화면 캡처를 초기화합니다.
화면을 클릭하면 클릭한 화면의 비디오 스트림이 표시됩니다. 중지를 클릭할 수도 있습니다.
버튼을 눌러 화면 캡처를 중지합니다.
전체 코드:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Screen Sharing</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div style="width:80%;background: grey;margin: auto;">
<video id="video" autoplay playsinline muted></video>
</div>
<div style="width:80%;margin: auto;padding-top:10px ;">
<button class="btn btn-primary" id="start"> Start Screen Sharing</button>
<button class="btn btn-secondary" id="stop"> Stop</button>
</div>
<script type="text/javascript">
const videoElem = document.getElementById("video");
const startElem = document.getElementById("start");
const stopElem = document.getElementById("stop");
// Options for getDisplayMedia()
var displayMediaOptions = {
video: {
cursor: "always",
height: 1000,
width: 1200
},
audio: false
};
// Set event listeners for the start and stop buttons
startElem.addEventListener("click", function (evt) {
startCapture();
}, false);
stopElem.addEventListener("click", function (evt) {
stopCapture();
}, false);
async function startCapture() {
try {
videoElem.srcObject = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
dumpOptionsInfo();
} catch (err) {
console.error("Error: " + err);
}
}
function stopCapture(evt) {
let tracks = videoElem.srcObject.getTracks();
tracks.forEach(track => track.stop());
videoElem.srcObject = null;
}
function dumpOptionsInfo() {
const videoTrack = videoElem.srcObject.getVideoTracks()[0];
console.info("Track settings:");
console.info(JSON.stringify(videoTrack.getSettings(), null, 2));
console.info("Track constraints:");
console.info(JSON.stringify(videoTrack.getConstraints(), null, 2));
}
</script>
</body>
</html>
🤝 시간을 내어 이 기사를 읽어주셔서 감사합니다! 도움이 되었기를 바라며 오늘 새로운 것을 배웠습니다! 추가하고 싶은 것이 있으면 댓글을 남겨주세요.
☕️ 제 콘텐츠Buy me a coffee를 즐겨 읽으신다면 계속해서 멋진 품질의 블로그를 만드는 데 도움이 될 것입니다!
👨🏽💻 더 많은 Web Dev 코드 스니펫, 팁 및 요령을 보려면 내Grepper Platform를 확인하십시오.
🎨 제 포트폴리오here도 확인하실 수 있습니다.
🐦 또한 저를 팔로우하여 제 독학 여정과 웹 개발에 대한 더 많은 팁을 확인할 수 있습니다.
Reference
이 문제에 관하여(JavaScript로 화면 공유 애플리케이션을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/anthonys1760/how-to-create-a-screen-sharing-application-with-javascript-4h6j
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const videoElem = document.getElementById("video");
const startElem = document.getElementById("start");
const stopElem = document.getElementById("stop");
// Options for getDisplayMedia()
var displayMediaOptions = {
video: {
cursor: "always",
height: 1000,
width: 1200
},
audio: false
};
// Set event listeners for the start and stop buttons
startElem.addEventListener("click", function (evt) {
startCapture();
}, false);
// Stop the screen capture
stopElem.addEventListener("click", function (evt) {
stopCapture();
}, false);
// Start the screen capture
async function startCapture() {
try {
videoElem.srcObject = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
dumpOptionsInfo();
} catch (err) {
// Handle error
console.error("Error: " + err);
}
}
// Stop the stream
function stopCapture(evt) {
let tracks = videoElem.srcObject.getTracks();
tracks.forEach(track => track.stop());
videoElem.srcObject = null;
}
// Dump the available media track capabilities to the console
function dumpOptionsInfo() {
const videoTrack = videoElem.srcObject.getVideoTracks()[0];
console.info("Track settings:");
console.info(JSON.stringify(videoTrack.getSettings(), null, 2));
console.info("Track constraints:");
console.info(JSON.stringify(videoTrack.getConstraints(), null, 2));
}
이제 애플리케이션을 테스트할 수 있습니다. 브라우저에서 index.html 파일을 열고 시작 버튼을 클릭하여
화면 캡처를 초기화합니다.
화면을 클릭하면 클릭한 화면의 비디오 스트림이 표시됩니다. 중지를 클릭할 수도 있습니다.
버튼을 눌러 화면 캡처를 중지합니다.
전체 코드:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Screen Sharing</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div style="width:80%;background: grey;margin: auto;">
<video id="video" autoplay playsinline muted></video>
</div>
<div style="width:80%;margin: auto;padding-top:10px ;">
<button class="btn btn-primary" id="start"> Start Screen Sharing</button>
<button class="btn btn-secondary" id="stop"> Stop</button>
</div>
<script type="text/javascript">
const videoElem = document.getElementById("video");
const startElem = document.getElementById("start");
const stopElem = document.getElementById("stop");
// Options for getDisplayMedia()
var displayMediaOptions = {
video: {
cursor: "always",
height: 1000,
width: 1200
},
audio: false
};
// Set event listeners for the start and stop buttons
startElem.addEventListener("click", function (evt) {
startCapture();
}, false);
stopElem.addEventListener("click", function (evt) {
stopCapture();
}, false);
async function startCapture() {
try {
videoElem.srcObject = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
dumpOptionsInfo();
} catch (err) {
console.error("Error: " + err);
}
}
function stopCapture(evt) {
let tracks = videoElem.srcObject.getTracks();
tracks.forEach(track => track.stop());
videoElem.srcObject = null;
}
function dumpOptionsInfo() {
const videoTrack = videoElem.srcObject.getVideoTracks()[0];
console.info("Track settings:");
console.info(JSON.stringify(videoTrack.getSettings(), null, 2));
console.info("Track constraints:");
console.info(JSON.stringify(videoTrack.getConstraints(), null, 2));
}
</script>
</body>
</html>
🤝 시간을 내어 이 기사를 읽어주셔서 감사합니다! 도움이 되었기를 바라며 오늘 새로운 것을 배웠습니다! 추가하고 싶은 것이 있으면 댓글을 남겨주세요.
☕️ 제 콘텐츠Buy me a coffee를 즐겨 읽으신다면 계속해서 멋진 품질의 블로그를 만드는 데 도움이 될 것입니다!
👨🏽💻 더 많은 Web Dev 코드 스니펫, 팁 및 요령을 보려면 내Grepper Platform를 확인하십시오.
🎨 제 포트폴리오here도 확인하실 수 있습니다.
🐦 또한 저를 팔로우하여 제 독학 여정과 웹 개발에 대한 더 많은 팁을 확인할 수 있습니다.
Reference
이 문제에 관하여(JavaScript로 화면 공유 애플리케이션을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anthonys1760/how-to-create-a-screen-sharing-application-with-javascript-4h6j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)