Відео та аудіо
До HTML5 розмітка відео і аудіо була складним завданням. В сучасному стандарті додали нові теги для розмітки медіаконтенту з підтримкою різних форматів, вбудованими елементами управління тощо.
Відео
Для розмітки відеоконтенту використовується парний тег <video>
.
<video
src="http://techslides.com/demos/sample-videos/small.webm"
poster="https://images.pexels.com/photos/595804/pexels-photo-595804.jpeg?w=640"
width="640"
controls
autoplay
loop
preload="auto"
></video>
Розберемо атрибути.
src
- вказує адресу відеофайлуposter
- адреса зображення, яке використовується як постер, якщо відео завантажене або ще не відтворюєтьсяwidth
іheight
- задають висоту і ширину як у зображенняcontrols
- атрибут-прапорець, якщо присутній, додаються елементи управління відеоautoplay
- атрибут-прапорець, якщо присутній, відтворення відео починається як тільки воно доступнеloop
- атрибут-прапорець, якщо присутній, відео буде повторюватися в циклі
Атрибут preload
вказує режим попереднього завантаження відео. Його значення
впливає на те, яка інформація буде завантажена. Значення за замовчуванням
залежить від браузера, в якому була відкрита веб-сторінка.
none
- не завантажувати відео заздалегідьmetadata
- завантажити службову інформацію (тривалість тощо)auto
- заздалегідь завантажувати всі відео
Формати відео
Завантажувати лише один формат відеофайлу недостатньо, деякі браузери можуть
його не підтримувати, і користувач не зможе подивитися відео. Існує декілька
популярних відеоформатів, які необхідно надати браузеру на вибір: webm
, mp4
і ogg
.
Для цього прибираємо атрибут src
у тегу <video>
і додаємо новий тег
<source>
для кожного формату. В атрибуті src
вказуємо адресу відеофайлу, а в
атрибуті type
- формат відео. Браузер вибере зі списку перший, який він
підтримує і завантажить його, проігнорувавши інші.
<video
poster="https://images.pexels.com/photos/595804/pexels-photo-595804.jpeg?w=640"
width="640"
controls
>
<source
src="http://techslides.com/demos/sample-videos/small.webm"
type="video/webm"
/>
<source
src="http://techslides.com/demos/sample-videos/small.mp4"
type="video/mp4"
/>
<source
src="http://techslides.com/demos/sample-videos/small.ogg"
type="video/ogg"
/>
</video>
Конвертація відео і аудіо в необхідні формати - це завдання автора контенту, контент-менеджера або, у крайньому разі - розробника.
Аудіо
Для розмітки аудіоконтенту використовується парний тег <audio>
. Його
використання дуже схоже на <video>
, але можна задати менше атрибутів.
<audio src="song.mp3" controls autoplay loop preload="auto"></audio>
Розберемо атрибути.
src
- вказує адресу аудіофайлуcontrols
- атрибут-прапорець, якщо присутній, додаються елементи управління аудіоautoplay
- атрибут-прапорець, якщо присутній, відтворення аудіо починається як тільки воно доступнеloop
- атрибут-прапорець, якщо присутній, аудіо буде повторюватися в циклі
Атрибут preload
вказує режим попереднього завантаження аудіофайлу. Його
значення впливає на те, яка інформація буде завантажена. Значення за
замовчуванням залежить від браузера, в якому була відкрита веб-сторінка.
none
- не завантажувати аудіо заздалегідьmetadata
- завантажити службову інформацію (тривалість тощо)auto
- заздалегідь завантажувати увесь аудіофайл
Формати аудіо
Аудіо має кращу ситуацію з підтримкою форматів в браузері. Всі сучасні браузери
гарантовано підтримують один з двох форматів: mp3
або ogg
.
Подібно до відео, видаляємо атрибут src
і використовуємо тег <source>
з
атрибутами src
і type
.
<audio controls>
<source src="song.mp3" type="audio/mpeg" />
<source src="song.ogg" type="audio/ogg" />
</audio>
Підтримка старих браузерів
Якщо браузер дуже старий і не підтримує HTML5 медіаконтент, потрібно сказати про
це користувачеві. Для цього, всередині тегів <video>
або <audio>
, після всіх
тегів <source>
додамо рядок тексту, який браузер відобразить, якщо не
підтримує медіаконтент.
<video
poster="https://images.pexels.com/photos/595804/pexels-photo-595804.jpeg?w=640"
width="640"
controls
>
<source
src="http://techslides.com/demos/sample-videos/small.webm"
type="video/webm"
/>
<source
src="http://techslides.com/demos/sample-videos/small.mp4"
type="video/mp4"
/>
<source
src="http://techslides.com/demos/sample-videos/small.ogg"
type="video/ogg"
/>
Your browser does not support the <code>video</code> element.
</video>
<audio controls>
<source src="song.mp3" type="audio/mpeg" />
<source src="song.ogg" type="audio/ogg" />
Your browser does not support the <code>audio</code> element.
</audio>