HTML та CSS для початківців

HTML та CSS для початківців (Частина 23): Мультимедіа для веб-сайту (2)

Усі відео з уроку HTML та CSS для початківців.

Аудіо файли можна вбудовувати в HTML5 приблизно так само легко, як відео. HTML5 надає окремий елемент з audio для цього.

<audio src="song.mp3">
   Ваш браузер не підтримує елемент audio.
</audio>

До елементу audio через атрибут src призначається ім'я файлу, який потрібно відтворити. Але сам файл таким чином ще не відтворюється. Для цього потрібні елементи керування.

Щоб показати елементи керування, ви призначаєте елементу audio атрибут controls.

<audio src="song.mp3" controls>
   Ваш браузер не підтримує елемент audio.
</audio>



У браузері це має виглядати наступним чином:

HTML & CSS для початківців (Частина 23): Мультимедіа для веб-сайту (2)

Якщо відсутній controls, то елемент, який вбудовується через audio, не буде видно. Це може бути корисно, якщо ви хочете додати власні елементи керування за допомогою JavaScript.

Також використання елементу audio не завжди можливо безперешкодно. Винні у цьому, знову ж таки, браузери, які підтримують різні формати. Наведена таблиця надасть вам актуальну інформацію з цього приводу.

Браузер
MP3

OGG

WAV

AU/SND

AIF

Firefox

ні

так

так

ні

ні

Safari

так

ні

так

так

так

Chrome

так

так

ні

ні

ні

Opera

ні

так

так

так

ні



Що ж робити? Елемент audio також надає можливість визначати додаткові елементи source. Цим елементам ви призначаєте різні формати для різних браузерів. Приклад:

<audio controls>  
    <source src="song.mp3">  
    <source src="song.ogg">  
</audio>



До атрибутів src призначаються відповідні файли в різних форматах. Крім controls для елементу audio існують інші атрибути. Один з них - autoplay.

<audio controls autoplay>  
    <source src="song.mp3">  
    <source src="song.ogg">  
</audio>



Якщо цей атрибут встановлений, відтворення аудіофайлу розпочнеться автоматично після завантаження. Зазвичай цей атрибут не використовується, оскільки відвідувачам слід бути покладено на рішення, коли аудіофайл буде відтворено.

Tакож цікавим є атрибут loop. Цей атрибут забезпечує зациклене відтворення файлу.

Як і при вбудовуванні відео, є два атрибути type і media для аудіофайлів. Так само тут ви можете вказати відповідні MIME-типи і кодеки. В HTML5-специфікації перераховані наступні типові атрибути для type:

Вбудування Flash та ін.

Flash-фільми раніше вбудовувались в HTML за допомогою комбінації елементів embed та object. В результаті отримувалася - до речі, досить некрасива - синтаксис виглядала, наприклад, так:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="800" height="600">
  <param name=movie value="intro.swf">
 <param name=quality value=high>
 <embed src="intro.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="800" height="600"> </embed>
 </object>

Це класичний спосіб через елементи object та embed, який в HTML існує вже дуже довго.

HTML & CSS для початківців (Частина 23): Мультимедіа для веб-сайту (2)



Проте тут "класичний" не означає, що цей варіант колись був схвалений W3C. Оскільки в HTML 4 віддавав перевагу елементу object, який доправильно інтерпретувався Internet Explorer. Але Netscape Navigator використовував елемент embed. Ця різниця в тлумаченні змусила використовувати комбінацію елементів object та embed.

HTML5 офіційно надає два елементи object та embed для вбудовування активного вмісту.

embed - це контейнер, призначений для відображення не-HTML вмісту, який не покриваються іншими елементами, такими як img, video, audio та інші. Для відтворення вкладених вмісту, зазвичай потрібні додаткові плагіни браузера.

За допомогою embed тепер можна вбудовувати Flash-фільми в стандартному вигляді. Ось приклад того, як це може виглядати:

<embed
    src="http://www.youtube.com/v/v1PgiBpTtao?fs=1&hl=de_DE"
    type="application/x-shockwave-flash"
    width="384"
    height="313"
    allowscriptaccess="always"
    allowfullscreen="true"
  />



Різним атрибутам можна надати до embed-елемента. Найважливішим, звісно ж, є знову ж таки атрибут src. Саме через це вказується файл, який слід вбудувати. Через атрибут type вказується MIME-тип.

У разі Flash це буде application/x-shockwave-flash. Якщо ви замість цього хочете вбудувати файл LaTeX, ви вказуєте application/x-latex. Ширину і висоту вбудованого файлу встановлюють за допомогою атрибутів width і height.

HTML & CSS для початківців (частина 23): мультимедіа для веб-сайту (2)

Насправді існують інші атрибути, які, однак, не є офіційною частиною HTML5. Вони дозволяють керувати використовуваним плагіном. Так, у попередньому прикладі через два "Flash-атрибути" allowscriptaccess та allowfullscreen було вказано, що доступ до скриптів та повноекранний режим можливі. Також є атрибут quality, через який можна визначити якість Flash-фільму.

<embed 
    src="flash.swf" 
    width="600" height="300" 
    type="application/x-shockwave-flash" 
    quality="high" 
 />

Елемент object

Елемент object діє подібно до embed як контейнер для вмісту. Належно до embed, object знає проте три різні моделі вмісту. Якщо браузер визнає, що це є графікою, яку можна показати безпосередньо, він поводитиметься так, наче це img-елемент. Якщо об'єкт посилається на вміст веб-сторінки, цей вміст відображатиметься в межах iFrame. (До iFrames більше інформації, до речі, далі в цьому циклі статей). Щодо іншого вмісту, елемент object поводиться як embed.

Наступний приклад показує вбудування Flash-фільму через елемент object.

<object
    type="application/x-shockwave-flash"
    data="http://www.youtube.com/v/BzYBY_9rnuA?version=3&hl=de_DE&rel=0"
    width="400"
    height="300">
    <param name="allowscriptaccess" value="always" />
    <param name="allowfullscreen" value="true" />
    <p>
       У вашому браузері відсутній Flash-плагін.
    </p>
 </object>

Зрозуміло, що виникає питання, чи потрібно використовувати object чи embed. На перший погляд здається, що ці два елементи майже ідентичні. І насправді елемент object може все, що може і елемент embed.

HTML & CSS для початківців (частина 23): Мультимедіа для веб-сайту (2)



Для вбудування вмісту - за винятком зображень - зазвичай слід використовувати елемент object. Цей елемент дозволяє вказувати альтернативний вміст, який відображатиметься, якщо вбудований елемент не може бути завантажений.