๐ซข ๊ตฌํ ์ ์๊ฐ
API๋ฅผ ์ด์ฉํ๋๊ฒ๊ฐ์๋ฐ... ๊ฐ์ด์ค์ง์๋๋ค...!
<!-- Video -->
<video id="video" controls height="360" width="640" hidden ></video>
<!-- Button -->
<div class="button-container">
<button id="button">START</button>
</div>
selectMediaStream()
const videoElement = document.getElementById("video");
//Prompt to select media stream, pass to video element, then play
async function selectMediaStream() {
try {
//๋ฏธ๋์ด์คํธ๋ฆผ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ ์ค์ ํ๊ณ ๊ธฐ๋ค๋ฆฌ๊ณ ์์
const mediaStream = await navigator.mediaDevices.getDisplayMedia();
//ํด๋น ๋ฏธ๋์ด ์คํธ๋ฆผ์ ์์ค๊ฐ์ฒด๋ก ๋น๋์ค ๊ฐ์ฒด์ ์ ๋ฌํจ
videoElement.srcObject = mediaStream;
// ํด๋น ๋์์์ด ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ฉด, ๋์์์ ์ฌ์ํ๋ ํจ์๋ฅผ ํธ์ถํจ
videoElement.onloadedmetadata = () => {
videoElement.play();
};
} catch (error) {
//Catch Error Here
console.log("Whoops, error here:", error);
}
}
const button = document.getElementById("button");
button.addEventListener("click", async () => {
//Disable Button
button.disabled = true;
// Start Picture in Picture
await videoElement.requestPictureInPicture();
// Reset Button
button.disabled = false;
});
PIP๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ผํ๋? ๋ผ๋ ์๊ฐ์ ํ๋๋ฐ, ๋ด์ฅํจ์๋ก ๊ตฌํ ๊ฐ๋ฅํ์ ์ด ์์ผ๋๋๋ค!
๋ฌผ๋ก , ์ง๊ธ์ ๊ต์ฅํ ์ ํ์ ์ธ ๊ธฐ๋ฅ์ธ๊ฒ๊ฐ์ง๋ง ๋์ค์ ๊ด๋ จ ํ๋ก์ ํธ ์ ๋ง๋ถ์ฌ๋๊ฐ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค!