HTMLMediaElement.canPlayType() - чи вказаний тип може бути відтворений.
HTMLMediaElement.canPlayType( mediaTypeA )
HTMLMediaElement - об'єкт HTMLMediaElement.
mediaTypeA - рядок який містить MIME-тип носія який необхідно перевірити, також можна вказувати кодек. Приклад MIME-типів: 'video/mp4', 'audio/mpeg', 'video/webm', 'audio/webm', 'audio/ogg', 'video/ogg', 'audio/ogg; codecs=opus', 'audio/wav'.
canPlayType() метод об'єкта HTMLMediaElement який перевіряє чи вказаний тип медіа може бути відтворений.
Приклад відтворення аудіо:
var audio=new Audio();
audio.src="/dani/test.mp3";
var res= audio.canPlayType('audio/mpeg');
alert(res);
var video=document.createElement('video');
var res= video.canPlayType('video/mp4');
alert(res);
var video=document.createElement('video');
var res= video.canPlayType('video/ogg; codecs="theora"');
alert(res);
Приклад перевірки доступності медіа форматів:
var video=document.createElement('video');
var mime=[ 'video/mp4', 'video/webm', 'video/webm', 'video/ogg', 'application/ogg', 'video/quicktime', 'video/x-ms-wmv', 'video/x-flv', 'video/3gpp', 'video/3gpp2', 'video/VP8', 'video/jpeg', 'video/x-ms-asf',
'audio/mpeg', 'audio/MPA','audio/mp4', 'audio/webm', 'audio/aac', 'audio/AMR','audio/ogg', 'audio/wave', 'audio/wav', 'audio/x-wav', 'audio/x-pn-wav', 'audio/vnd.wave', 'audio/flac', 'audio/x-flac', 'audio/vorbis', 'audio/x-ms-wma', 'audio/vnd.rn-realaudio', 'audio/basic', 'audio/L24', 'audio/opus','audio/midi'];
var s='<table><tr><th>MIME-type</th><th>Чи підтримує браузер</t></tr>';
for(var i=0;i<mime.length;i++){
switch(video.canPlayType(mime[i])){
case 'probably':
s+='<tr><td>'+mime[i]+'</td><td style="background-color:green;text-align:center;">так</td></tr>';
break;
case 'maybe':
s+='<tr><td>'+mime[i]+'</td><td style="background-color:yellow;text-align:center;">можливо</td></tr>';
break;
default:
s+='<tr><td>'+mime[i]+'</td><td style="background-color:red;text-align:center;">ні</td></tr>';
break;
}
}
s+='</table>';
document.getElementById('result').innerHTML=s;
Перевірка підтримки браузером MIME-type форматів і вказаними кодеками:
var mime_type=['application/ogg', 'application/ogg; codecs=bogus', 'application/mp4', 'application/mp4; codecs=bogus', 'application/octet-stream', 'application/octet-stream; codecs=bogus', 'audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/ac3', 'audio/x-ac3', 'audio/basic', 'audio/flac', 'audio/x-flac', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mpeg', 'audio/x-mpeg', 'audio/mpegurl', 'audio/x-mpegurl', 'audio/mp4', 'audio/mp4; codecs=bogus', 'audio/ogg', 'audio/ogg; codecs=bogus', 'audio/wav', 'audio/wav; codecs=0', 'audio/wav; codecs=1', 'audio/wav; codecs=2', 'audio/wave', 'audio/wave; codecs=0', 'audio/wave; codecs=1', 'audio/wave; codecs=2', 'audio/x-wav', 'audio/x-wav; codecs=0', 'audio/x-wav; codecs=1', 'audio/x-wav; codecs=2', 'audio/x-pn-wav', 'audio/x-pn-wav; codecs=0', 'audio/x-pn-wav; codecs=1', 'audio/x-pn-wav; codecs=2',
'video/3gpp', 'video/3gpp2', 'video/avi', 'video/mpeg', 'video/x-mpeg', 'video/mp4', 'video/mp4; codecs=bogus', 'video/msvideo', 'video/x-msvideo', 'video/quicktime', 'video/ogg', 'video/ogg; codecs=bogus', 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"', 'video/mp4; codecs="avc1.58A01E, mp4a.40.2"', 'video/mp4; codecs="avc1.4D401E, mp4a.40.2"', 'video/mp4; codecs="avc1.64001E, mp4a.40.2"', 'video/mp4; codecs="mp4v.20.8, mp4a.40.2"', 'video/mp4; codecs="mp4v.20.240, mp4a.40.2"', 'video/3gpp; codecs="mp4v.20.8, samr"', 'video/ogg; codecs="theora, vorbis"', 'video/ogg; codecs="theora, speex"', 'audio/ogg; codecs=vorbis', 'audio/ogg; codecs=speex', 'audio/ogg; codecs=flac', 'video/ogg; codecs="dirac, vorbis"', 'video/x-matroska; codecs="theora, vorbis"', 'audio/webm', 'audio/webm; codecs=vorbis', 'video/webm', 'video/webm; codecs=vorbis', 'video/webm; codecs=vp8', 'video/webm; codecs=vp8.0', 'video/webm; codecs="vp8, vorbis"'];
var video=document.createElement('video');
var s='<table><tr><th>MIME-type</th><th>Чи підтримує браузер</t></tr>';
for(var i=0;i<mime_type.length;i++){ switch(video.canPlayType(mime_type[i])){
case 'probably':
s+='<tr><td>'+mime_type[i]+'</td><td style="background-color:green;text-align:center;">так</td></tr>';
break;
case 'maybe':
s+='<tr><td>'+mime_type[i]+'</td><td style="background-color:yellow;text-align:center;">можливо</td></tr>';
break;
default:
s+='<tr><td>'+mime_type[i]+'</td><td style="background-color:red;text-align:center;">ні</td></tr>';
break;
}
}
s+='</table>';
document.getElementById('result').innerHTML=s;