Я долго думал, куда отнести эту статью, то ли к HTML5, то ли к JavaScript. В конце концов, я решил отнести именно ко второму разделу, так как звуки чаще всего делают при возникновении какого-то события, а это уже относится к скриптам. Таким образом, в этой статье Вы узнаете, как воспроизвести звук на JavaScript.
Для начала базовая теория. Для добавления аудио на страницу служит тег audio:
Таким образом, можно добавить какую-нибудь фоновую музыку на сайт. Атрибут src отвечает за путь к воспроизводимому файлу, а атрибут autoplay отвечает за автоматическое воспроизведение файла при загрузке страницы. Теперь разберём, как сделать звуковую обработку события на JavaScript. Допустим, будем обрабатывать клик мышью по тексту:
Кликни по этому тексту
Осталось лишь сделать функцию soundClick():
function soundClick()
Таким образом, можно обработать звуком любое возникающее событие на странице. Единственное, что Вы должны чётко понимать — работать это всё будет только в современных браузерах, где есть поддержка HTML5. Впрочем, все используемые на данный момент браузеры (за очень редким исключением), его поддерживают в достаточно высокой степени, поэтому с воспроизведением звуков и музыки через тег audio проблем не возникнет.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Содержание
- Комментарии ( 14 ):
- Что как и почему в WordPress
- Доступ к audio в javascript
- Создание объекта Audio в javascript
- Как остановить воспроизведение audio
- События audio
- loadeddata — данные загружены
- error — обработка ошибки загрузки
- onended — окончание воспроизведения
- Изменение свойств audio
- Поддержка элемента Audio и форматов звуковых файлов
- Пример проверки поддержки формата mp3
- Пример проверки поддержки audio и форматов файлов
- Комментарии ( 14 ):
- Что как и почему в WordPress
- Доступ к audio в javascript
- Создание объекта Audio в javascript
- Как остановить воспроизведение audio
- События audio
- loadeddata — данные загружены
- error — обработка ошибки загрузки
- onended — окончание воспроизведения
- Изменение свойств audio
- Поддержка элемента Audio и форматов звуковых файлов
- Пример проверки поддержки формата mp3
- Пример проверки поддержки audio и форматов файлов
Комментарии ( 14 ):
Здравствуйте , Уважаемый Русаков Михаил. Не подскажите как сделать , чтобы на сайте был не видимый контент , а при клике он появлялся и еще раз при клике опять закрывался. P.S.Поискал на сайте не нашел.
Здравствуйте, Андрей. Делается это с помощью jQuery.
Я не знаю толком jQuery. Можете написать?
Зачем использовать библиотеку для двух строчек кода, который можно написать на ванильном JS?
Не на вкус и цвет, а оптимизация. Зачем ради такой лёгкой задачи подключать тяжеловесную библиотеку JQuery?
Здравствуйте Михаил, не желаете ли вы зайти на фри ланс и вспомнить о конкурсе который создавали, и должны были объявить победителя 4 дня назад?
Михаил, есть одно замечание по доработке Вашего сайта, дело в том, что я забыл пароль, попытался восстановить его по почте. Но я и логин забыл тоже, но в почте не приходит логин, только имя, по которому зайти нельзя, логин можно посмотреть только тогда, когда заходишь на сайт. И нельзи ли сделать перенос караток в комментариях, а то иногда неудобно читать тот код, что присылают у вас на сайте в комментариях. И еще вопрос, нету у вас на сайте php — java скрипта новогодней елки, типо чтобы тикали часики сколько осталось до нового года, только опиралось на серверное время сервера. Ну можно еще каких-нибудь плюшек. Заранее спасибо.
Здраствуйте, как можно сделать на сайте отдельную категорию для музыки.
У меня все работает
Здравствуйте, Михаил! А у меня вот такой вопрос — как сделать, что бы музыка воспроизводилась в фоновом режиме при клике на картинку. Без отображения аудиоплейера. Пусть это сработает не во всех браузерах, но это уже вторая беда.
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2019 Русаков Михаил Юрьевич. Все права защищены.
Что как и почему в WordPress
Доступ к audio в javascript
Если в HTML есть тег , доступ к соответствующему объекту Audio можно получить через имя тега
Объект Audio также можно создать в js.
Создание объекта Audio в javascript
*** Используется один из поддерживаемых форматов (mp3, wav, ogg)
Воспроизведение звука и пауза:
Как остановить воспроизведение audio
Команды stop нет, и чтобы остановить воспроизведение звукового файла, нужно два действия — пауза и задание нулевого значения для свойства currentTime— текущее время:
События audio
loadeddata — данные загружены
Используем событие loadeddata , чтобы начать воспроизведение большого звукового файла после окончания загрузки:
Обработчик события окончания загрузки записан раньше, т.к. он должен быть доступен во время загрузки файла, которая начинается сразу после задания src.
error — обработка ошибки загрузки
onended — окончание воспроизведения
Длительность звукового файла
Свойство duration может быть недоступно, если не завершена загрузка метаданных, правильно:
Изменение свойств audio
Используем свойство muted — кнопки включения и выключения звука на странице:
Хотелось бы выключать фоновый звук, когда посетитель сайта переключается на другое окно или вкладку браузера. Важно, что выражение muted=true сработает, если будет выполняться после завершения загрузки звукового файла, т.е. его следует поместить в обработчик события loadeddata:
Поддержка элемента Audio и форматов звуковых файлов
Для проверки поддержки форматов звуковых файлов браузером используется метод canPlayType с параметром текстовым значением MIME-типа.
Можно явно указать кодек:
canPlayType возвращает одно из 3 значений:
- probably — наверное
- maybe — может быть
- «» (пустая строка) — формат не поддерживается
Пример проверки поддержки формата mp3
Можете проверить, Opera не поддерживает формата mp3
*** «!!» преобразует объект строки в логический тип
Пример проверки поддержки audio и форматов файлов
Если функция check_audio возвращает false, браузер не поддерживает элемент audio. Если элемент audio поддерживается, проверяется возможность использования форматов файлов ogg, mpeg, wav и m4a.
Есть приложение на javascript, нужно воспроизвести звук. К примеру есть игра и когда пользователь получает ход нужно пикнуть (уведомить пользователя о его ходе).
Есть файл f_4dbaa79f18001.mp3 6кб, можно ли его воспроизвести в фоновом режиме на чистом javascript без всяких флешей и jquery?
Источник: