728x90

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` 이벤트에 이벤트 리스너를 추가합니다.

728x90

'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

+ Recent posts