Работаем с HTML5 тегом audio из javascript

В HTML5 появился тег для вставки проигрывателя аудио-файлов. Т.е. нам уже не нужно встраивать Flash проигрыватель и т.п, можно обойтись средствами браузера для проигрывания аудио-трека (-ов).

Далее я расскажу о использовании тега и работе с ним средствами javascript.

Спецификация тега, поддерживаемые браузеры, типы аудио-файлов описаны вот тут.

Его можно использовать в двух вариантах —

или вот так

Если не указать ключ controls, то плеер, сгенерированный браузером не будет показан на странице в браузере. Вернее у нас будет пустой контейнер нулевой высоты, если высота не задана стилями. Пользователь не сможет управлять воспроизведением. Такой вариант подойдет либо для фоновой звуковой дорожки к веб-странице, либо в качестве скрытого плеера, управляемого скриптами.

Фоновый трек на вашей веб-странице

Если перед вами стоит именно такая задача, то скорее всего вы добавите пару флажков в проигрыватель:

Т.е. зададите автоматическое воспроизведение трека «по кругу» при загрузке страницы.

Управление audio плеером из скрипта (javascript).

Как всегда подобные вещи лучше рассматривать на практическом примере. Пусть у нас будет пара кнопок на сайте, нажимая которые, вы будете проигрывать одну из двух мелодий. При этом, мы будем использовать один и тот же элемент audio. Путь до трека я буду хранить в специальном аттрибуте — data-src каждой из кнопок.

HTML код будет примерно такой:

Далее нам нужно привязать событие нажатия клавиши к нашим импровизированным контейнерам-кнопкам. Я предполагаю, что с помощью каскадных стилей вы оформили внешний вид этих кнопок. При нажатии кнопка будет получать дополнительный CSS стиль — «on», чтобы мы могли задать отличное оформление активной и неактивной кнопок.

Например, в неактивном состоянии на кнопке выводится значок паузы, а при активации (добавлении стиля «on») — картинка запущенного проигрывателя.

Вот как будет выглядеть скрипт, привязывающий работу плеера к нашим кнопкам:

Если треков много, то использование одного проигрывателя «на всех» — это + в плане оптимизации ресурсов компьютера.

Управление громкостью тега AUDIO.

Кроме «стоп» и «играй», есть возможность манипулировать громкостью. За это отвечает свойство объекта — volume.

Суть в том, что вы можете выставить значение как коэффициент от номинала общей громкости от нуля до единицы. 0.0 — громкость «на нуле», 1 — на полную громкость. Значения более единицы не добавят амплитуды свыше 1.

Если ассоциировать этот параметр с ползунком, то можно запрограммировать управление громкостью проигрывателя.

Если вам интересны и другие возможности управления объектом проигрывателя, предоставляемого браузером, читайте следующие статьи:

Мало букафф? Читайте есчо !

Сохранение файла, загруженного на сервер с помощью PHP

Январь 29, 2021 г.

Эта статья о некоторых задачах, возникающих при сохранении файла на сервере, при получении его от пользователя через форму (<input type="file" />). Определимся с требованиями. Технически, решение нужно в виде функции, которая принимает набор ...

Читать

Применение системы контроля версий к проектам на Drupal

Октябрь 16, 2017 г.

Drupal очень многое позволяет делать из админки. Создание типов публикаций, представлений, настройка модулей и многое другое. Это сильная сторона и одновременно ...

Читать

Простые CSS анимации, которые оживят ваш сайт

Апрель 14, 2025 г.

Иногда даже одно лёгкое движение может сделать сайт запоминающимся. Не нужно быть мастером фронтенда, чтобы добавить немного магии в интерфейс — иногда достаточно пары строк CSS. Простые анимации делают сайт динамичным, визуально приятным и интуитивно ...

Читать

Добавление пунктов меню в Administration menu (admin_menu)

Апрель 8, 2020 г.

Популярный административный модуль admin_menu, собирает всё самое нужное и важное для управления сайтом. И хотя в 7 версии в ядре вы найдете модуль tool, обладающий похожим функционалом, ему не удалось заменить admin_menu. Далее, разберем код, добавляющий ...

Читать
 

Комментарии к «Работаем с HTML5 тегом audio из javascript»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: