Firefox中没有navigator.userAgent检测支持Shoutcast ICY MP3?

时间:2013-08-20 07:43:49

标签: firefox mp3 html5-audio shoutcast browser-feature-detection

当前版本的Mozilla Firefox为23.0.1,此版本不支持play MP3 shoutcast streams from a TCP port different to 80(Shoutcast 1.9.8最常见的是8000)。

我在HTML5音频中没有MP3支持时使用Flash,检测方式是:

try{
    var a = document.createElement('audio');
    r = !!(a.canPlayType && !!a.canPlayType("audio/mpeg; codecs=mp3").replace(/^no$/,''))
}catch(e){
    r = false;
}

Firefox will be added in version 24中支持Mp3 shoutcast流。

a.canPlayType(“audio / mpeg; codecs = mp3”)=可能在Chrome和Firefox中,Chrome确实支持,firefox不支持,由于这个当前代码检测不适用于Firefox。

支持IE 6的当前版本的jQuery是1.10.2,这个版本没有.browser

我认为“风格化”的方式是测试功能而不是查询浏览器/版本,尽管在这里我看到很难不违反这个“原则”。

在Firefox中没有navigator.userAgent检测MP3 ICY支持的“程式化”方式是什么?

1 个答案:

答案 0 :(得分:0)

没有复杂的方法来检测它。好消息是最后稳定的Firefox 24.0支持使用HTML5音频播放带有MP3的shoutcast流。检测我写的支持的最佳方法是:

function icy(){
    try{
        if(!navigator.userAgent.match(/Trident\/7\./) && $.browser.mozilla && $.browser.version < 24)
            return false;//https://bugzilla.mozilla.org/show_bug.cgi?id=869725
        var a = document.createElement('audio');
        r = !!(a.canPlayType && !!a.canPlayType("audio/mpeg; codecs=mp3").replace(/^no$/,''))
    }catch(e){
        r = false;
    }
    return r;
}

如果您使用最新的jQuery 1.10.2,则需要包含jQuery Migrate plugin才能使用$ .browser