36

如果 HTML5 音频播放可用,我知道如何检查 Javascript。但是我如何专门检查是否可以播放 MP3 音频,因为 IE9 和 Chrome 支持它,而 Firefox 和 Opera 不支持。

4

3 回答 3

62

您可以检查用户代理并查看正在使用的浏览器,也可以使用 Javascript 测试支持。

var a = document.createElement('audio');
return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));

我从这个页面得到了上面的代码。

return !!(a.canPlayType) 更好,因为(一些最新版本的)Firefox 不支持 mp3 并且 a.canPlayType('audio/mpeg;') 将为 false

于 2011-12-12T02:07:24.023 回答
4

Modernizr是一个用于特征检测的库。您可以使用它为您完成工作。

根据文档

如果检测到音频支持,Modernizr 会评估当前浏览器将播放哪些格式。目前,Modernizr 测试 ogg、mp3、wav 和 m4a。

重要提示:这些属性的值不是真正的布尔值。相反,Modernizr 匹配 HTML5 规范,返回一个字符串,表示浏览器对它可以处理该编解码器的置信度。这些返回值是一个空字符串(否定响应)、“可能”和“可能”。空字符串是假的,换句话说:Modernizr.audio.ogg == '' and '' == false

于 2011-12-12T02:10:37.697 回答
3
var test_audio= document.createElement("audio") //try and create sample audio element 
var test_video= document.createElement("video") //try and create sample video element
var mediasupport={audio: (test_audio.play)? true : false, video: (test_video.play)? true :     false}

alert("Audio Element support: " + mediasupport.audio + "\n"
+ "Video Element support: " + mediasupport.video
)
于 2013-10-11T20:46:01.190 回答