Media Capabilities API는 웹 개발자가 미디어 경험을 최적화하기 위해 사용자 장치의 미디어 기능을 쿼리할 수 있는 JavaScript API입니다. 이 API는 웹 애플리케이션이 지원되는 코덱, 해상도 및 HDR 지원과 같은 장치의 하드웨어 및 소프트웨어 기능을 쿼리하는 표준화된 방법을 제공합니다.
다음은 기기가 특정 비디오 코덱을 재생할 수 있는지 확인하기 위해 Media Capabilities API를 사용하는 방법의 예입니다.
async function canPlayCodec(codec) {
if ('mediaCapabilities' in navigator) {
const canPlay = await navigator.mediaCapabilities
.decodingInfo({ type: 'media', audio: false, video: { contentType: `video/mp4; codecs="${codec}"` } })
.then((info) => {
return info.supported;
})
.catch((error) => {
console.error('Failed to determine codec support', error);
return false;
});
return canPlay;
} else {
console.warn('Media Capabilities API not supported');
return false;
}
}
// Usage
async function testCodecSupport() {
const codecSupported = await canPlayCodec('avc1.4d001f');
if (codecSupported) {
console.log('Device supports this video codec');
} else {
console.warn('Device does not support this video codec');
}
}
이 예에서 `canPlayCodec()` 함수는 비디오 코덱을 매개변수로 사용하고 장치가 지정된 코덱을 재생할 수 있으면 `true`로 확인하고 그렇지 않으면 `false`로 확인하는 Promise를 반환합니다. 이 함수는 decodingInfo() 호출을 하기 전에 `navigator.mediaCapabilities` 객체가 사용 가능한지 확인합니다. API를 사용할 수 없는 경우 함수는 `false`를 반환합니다.
decodingInfo() 메서드는 미디어 유형, 오디오 및 비디오 코덱, 기타 옵션을 지정하는 개체를 사용합니다. 이 경우 비디오 코덱만 확인하므로 `audio` 옵션을 `false`로 설정합니다. 동영상 코덱을 `video` 객체의 `contentType` 매개변수로 전달합니다.
이 메서드는 지정된 미디어를 디코딩하는 장치의 기능에 대한 정보가 포함된 개체로 확인되는 Promise를 반환합니다. 개체의 `supported` 속성을 사용하여 장치가 코덱을 재생할 수 있는지 확인합니다.
전반적으로 Media Capabilities API는 웹 개발자가 장치 기능을 쿼리하는 표준화된 방법을 제공하여 사용자의 미디어 경험을 최적화하는 데 도움이 되는 강력한 도구입니다.
'IT' 카테고리의 다른 글
자바스크립트 "Layout Instability API" (0) | 2023.03.16 |
---|---|
자바스크립트 "Local Font Access API" (0) | 2023.03.16 |
자바스크립트 "Media Capture와 Streams API" (0) | 2023.03.16 |
자바스크립트 "Media Session API" (0) | 2023.03.15 |
자바스크립트 "Media Source Extensions API" (0) | 2023.03.15 |