728x90

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는 웹 개발자가 장치 기능을 쿼리하는 표준화된 방법을 제공하여 사용자의 미디어 경험을 최적화하는 데 도움이 되는 강력한 도구입니다.

 
728x90

+ Recent posts