更准确地说,我想检查可以在浏览器中对 HTML5 中的视频/音频元素使用哪些编解码器。 (例如 Safari 支持 H.264,但我也想知道我可以使用哪些编解码器)
由于规范随着时间的推移而变化,我想以某种方式自动完成它,而不是基于浏览器编解码器表。
我认为,它可以写成JS中的函数(如果还没有写的话)。我尝试用谷歌搜索,但还没有找到答案。
参考链接:https://www.nomensa.com/blog/2011/detecting-browser-compatibility-html5-video-and-audio https://www.nomensa.com/blog/2011/detecting-browser-compatibility-html5-video-and-audio你可以这样做:
// Define the get_mime function
var get_mime = function(filetype) {
var mimetype = '';
var media_container = 'video';
switch (filetype) {
case 'mp4':
mimetype = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
break;
case 'ogg':
mimetype = 'video/ogg; codecs="theora, vorbis"';
break;
case 'webm':
mimetype = 'video/webm; codecs="vp8, vorbis"';
break;
case 'mp3':
mimetype = 'audio/mpeg';
media_container = 'audio';
break;
}
return {
'mimetype': mimetype,
'container': media_container
};
};
// Check to see if the browser can render the file type
// using HTML5
var supports_media = function(mimetype, container) {
var elem = document.createElement(container);
if (typeof elem.canPlayType == ‘ function’) {
var playable = elem.canPlayType(mimetype);
if ((playable.toLowerCase() == 'maybe') || (playable.toLowerCase() == 'probably')) {
return true;
}
}
return false;
};
// When the DOM has loaded check the file extension of each media link
// and serve up appropriate media player
$(document).ready(function() {
$(‘a.youtube - links’).each(function() {
var path = $(this).attr(‘href’);
var extension = path.substring(path.lastIndexOf('.') + 1);
var extension_info = get_mime(extension);
if (supports_media(extension_info.mimetype, extension_info.container)) {
// Serve up an HTML5 Media Player and controls
serve_html5();
} else {
// Serve up a flash based video for browsers that
//will not play the file using HTML5
serve_flash();
}
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)