×
Traktatov.net » HTML5 для веб-дизайнеров » Читать онлайн
Страница 16 из 37 Настройки

Его вам сразу вклю́чат, а может быть, включáт

Элемент >audio выглядит практически идеальным. Где-то должен быть подвох, правда? Он есть.

Проблемы с элементом >audio не в спецификации. Главная проблема – с форматами аудиофайлов.

Хотя формат MP3 и распространен повсеместно, это не открытый формат. Из-за того, что на этот формат навешано множество патентов, нельзя написать декодер MP3, не заплатив отчислений по патенту. У корпораций вроде Apple или Adobe с этим нет проблем, но для маленьких компаний или опенсорс-групп это не так просто. Поэтому Safari будет с удовольствием проигрывать MP3-файлы, a Firefox – нет.

На свете есть и другие аудиоформаты. Кодек Vorbis – обычно для него используется файл с расширением >.ogg – никакими патентами не обременен. Firefox поддерживает Ogg Vorbis, а Safari – нет.

К счастью, есть способ использовать элемент >audio, не делая при этом «выбор Софи»[10] между форматами файлов. Вместо того чтобы использовать атрибут >src в открывающем теге >, можно указать несколько форматов файлов с помощью элемента source:


>

>

>

>


Браузер, который может проигрывать файлы Ogg Vorbis, не станет смотреть дальше первого элемента >source. Браузер, который может проигрывать файлы MP3, но не может Ogg Vorbis, пропустит первый элемент >source и проиграет файл во втором элементе >source.

Можно помочь браузерам и указать MIME-типы для каждого исходного файла:


>

> type="audio/ogg">

> type="audio/mpeg">

>


Элемент >source – самостоятельный (или «пустой») элемент, так что если вы используете синтаксис XHTML, не забудьте включить закрывающий слэш в конца каждого тега >.

Запасной вариант

Возможность указывать несколько элементов >source очень удобна. Но есть браузеры, которые пока не поддерживают элемент >audio совсем. Угадаете, на который браузер я намекаю?

Internet Explorer и его родню нужно кормить аудиофайлами с ложечки, по старинке, через Flash. Модель содержимого элемента >audio позволяет это сделать. Все, что находится между открывающим и закрывающим тегами > – и что при этом не является элементом >source – будет показываться браузерам, которые не понимают элемента >audio:


>

>

>

> >data="player.swf?soundFile=witchitalineman.mp3">

> >value="player.swf?soundFile=witchitalineman.mp3">

>

>


В этом примере элемент >object будет доступен только тем браузерам, которые не поддерживают элемент >audio.

Можно пойти еще дальше. Элемент >object, включающийся при «запасном варианте», тоже предоставляет вам возможность включить содержимое. Это значит, что, если больше ничего не срабатывает, можно дать старый проверенный вариант – гиперссылку:


>

>

>