detect-features
Version:
Detect and report browser and hardware features.
33 lines (28 loc) • 815 B
JavaScript
// @ts-check
/**
* Get supported media formats (audio & video)
*
* @returns {Object} Returns browser supported audio and video formats
*/
export default (() => {
const audio = new Audio();
const video = document.createElement('video');
function canPlay(type, mimeType) {
const support = type.canPlayType(mimeType);
return !!(support === 'probably' || support === 'maybe');
}
return {
audio: {
MP3: canPlay(audio, 'audio/mpeg'),
Ogg: canPlay(audio, 'audio/ogg'),
WAV: canPlay(audio, 'audio/wav'),
},
video: {
HLS:
canPlay(video, 'application/vnd.apple.mpegURL') || canPlay(video, 'application/x-mpegurl'),
MP4: canPlay(video, 'video/mp4'),
Ogg: canPlay(video, 'video/ogg'),
WebM: canPlay(video, 'video/webm'),
},
};
})();