1

Текущая версия Mozilla Firefox 23.0.1, эта версия не поддерживает play MP3 shoutcast streams from a TCP port different to 80 (наиболее распространенная версия 8000 для Shoutcast 1.9.8).Обнаруживать поддержку Shoutcast ICY MP3 без navigator.userAgent в Firefox?

Я использую Flash, когда поддержка MP3 не доступна в HTML5 аудио, способ обнаружения является:

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

Поддержка Mp3 SHOUTcast потоков в Firefox will be added in version 24.

a.canPlayType («audio/mpeg; codecs = mp3») = возможно, в Chrome и Firefox, Chrome действительно поддерживает, firefox не поддерживает, из-за этого текущий код обнаруживает, что он не работает для Firefox.

Текущая версия JQuery, который поддерживает IE 6 является 1.10.2, эта версия не имеет .browser

Я думаю, что «стилизованный» способ тестирования функций и не запрашивая браузеры/версии, несмотря на то здесь я старайтесь не нарушать этот «принцип».

Что такое «стилизованный» способ обнаружения поддержки MP3 ICY без navigator.userAgent в Firefox?

+0

проблема не связана с MP3, но с «ICY» в строке состояния ответа сервера. Невозможно обнаружить это, поскольку это не настоящая спецификация, а браузеры поддерживают ее только потому, что в большинстве случаев они следуют принципу «принять что-либо». Путь к проблеме заключается в том, чтобы использовать что-то, что возвращает настоящий HTTP-ответ, такой как Icecast. Если вы хотите, я тестирую хостинг на http://audiopump.co и могу передать ваш поток SHOUTcast. Стреляйте мне по электронной почте на [email protected] – Brad

ответ

0

Существует нет сложного способа его обнаружения. Хорошей новостью является последний стабильный Firefox 24.0, поддерживающий воспроизведение потоков криков в формате MP3 с аудио HTML5. Лучший способ обнаружить ту поддержку, которую я написал:

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

Смежные вопросы