Screen Capture API는 웹 개발자가 사용자의 화면 또는 장치 카메라에서 비디오, 오디오 및 이미지를 캡처할 수 있도록 하는 JavaScript API입니다. 이 API를 사용하면 장치 화면 또는 카메라와의 사용자 상호 작용을 실시간으로 캡처하고 기록할 수 있는 애플리케이션을 만들 수 있습니다.
Screen Capture API를 사용하려면 사용자에게 화면이나 카메라에 액세스할 수 있는 권한을 요청해야 합니다. 다음은 이를 수행할 수 있는 방법의 예입니다.
navigator.mediaDevices.getDisplayMedia({ video: true })
.then(stream => {
// Do something with the stream, like display it in a video element
})
.catch(error => {
// Handle the error
});
이 예제에서는 `navigator.mediaDevices` 개체의 `getDisplayMedia` 메서드를 사용하여 사용자 화면 캡처 권한을 요청합니다. 이 메서드는 캡처된 화면을 포함하는 `MediaStream` 개체로 해결되는 `Promise`를 반환합니다.
다음은 사용자의 카메라에서 비디오를 캡처하는 방법을 보여주는 또 다른 예입니다.
navigator.mediaDevices.getUserMedia({ video: true })
.then(stream => {
// Do something with the stream, like display it in a video element
})
.catch(error => {
// Handle the error
});
이 예제에서는 `navigator.mediaDevices` 개체의 `getUserMedia` 메서드를 사용하여 사용자의 카메라에 액세스할 수 있는 권한을 요청합니다. 이 메서드는 캡처된 비디오를 포함하는 `MediaStream` 개체로 확인되는 `Promise`를 반환합니다.
`MediaStream` 개체가 있으면 이를 사용하여 캡처된 비디오를 `video` 요소에 표시하거나 `MediaRecorder` API를 사용하여 녹화하는 등의 작업을 수행할 수 있습니다.
다음은 `video` 요소에 캡처된 비디오를 표시하는 방법의 예입니다.
const videoElement = document.querySelector('video');
navigator.mediaDevices.getUserMedia({ video: true })
.then(stream => {
videoElement.srcObject = stream;
})
.catch(error => {
// Handle the error
});
이 예제에서는 비디오 요소의 `srcObject` 속성을 사용하여 해당 소스를 `getUserMedia`에서 반환된 `MediaStream` 개체로 설정합니다. `video` 요소에 캡처된 비디오가 표시됩니다.
다음은 `MediaRecorder` API를 사용하여 캡처된 비디오를 녹화하는 방법의 예입니다.
navigator.mediaDevices.getUserMedia({ video: true })
.then(stream => {
const mediaRecorder = new MediaRecorder(stream);
mediaRecorder.start();
setTimeout(() => {
mediaRecorder.stop();
}, 5000);
mediaRecorder.addEventListener('dataavailable', event => {
const videoBlob = new Blob([event.data], { type: 'video/webm' });
// Do something with the recorded video blob, like upload it to a server
});
})
.catch(error => {
// Handle the error
});
이 예제에서는 `MediaRecorder` API를 사용하여 캡처된 비디오를 5초 동안 녹화합니다. `getUserMedia`에 의해 반환된 `MediaStream` 개체로 `MediaRecorder` 개체를 만들고, `start` 메서드를 호출하여 녹음을 시작하고, `stop` 메서드를 호출하여 5초 후에 녹음을 중지합니다. 또한 녹화된 비디오 데이터를 서버에 업로드하거나 디스크에 저장할 수 있는 `Blob` 개체로 캡처하기 위해 `MediaRecorder` 개체의 `dataavailable` 이벤트에 이벤트 리스너를 추가합니다.
'IT' 카테고리의 다른 글
자바스크립트 "Reporting API" (0) | 2023.03.13 |
---|---|
자바스크립트 "Resize Observer API" (0) | 2023.03.13 |
자바스크립트 "Screen Orientation API" (0) | 2023.03.13 |
자바스크립트 "Selection API" (0) | 2023.03.13 |
자바스크립트 "Sensor API" (0) | 2023.03.13 |