Audio()

Конструктор Audio() создает и возвращает новый HTMLAudioElement объект, который может быть прикреплен к документу, чтобы пользователь мог взаимодействовать и/или слушать его, либо может использоваться вне экрана для управления и воспроизведения звука.

Синтаксис

audioObj = new Audio(url);

Параметры

url Необязательный
Необязательный параметр DOMString, содержащий URL-адрес аудиофайла, который будет связан с новым аудиоэлементом.

Возвращаемое значение

Новый HTMLAudioElement объект, настроенный для воспроизведения файла, указанного в url. Свойство preload нового объекта имеет значение по умолчанию auto, а его свойство src — указанный URL-адрес или null, если адрес не указан. Если указан URL-адрес, браузер начинает асинхронно загружать медиаресурс перед возвратом нового объекта.

Примечания по использованию

Вы также можете использовать другие методы создания элементов, такие как метод createElement() объекта document, для создания нового HTMLAudioElement объекта.

Определение, когда воспроизведение может начаться

Существует три способа определить насколько аудио-файл загружен, чтобы начать воспроизведение:

  • Проверьте значение свойства readyState. Если оно равняется HTMLMediaElement.HAVE_FUTURE_DATA, значит загружено достаточно данных, чтобы начать воспроизведение и проиграть хотя бы короткое время. Если HTMLMediaElement.HAVE_ENOUGH_DATA — доступно достаточно данных, чтобы воспроизводить аудио до конца без прерываний, учитывая текущую скорость загрузки.
  • Прослушайте событие canplay. Оно отправляется элементу <audio>, когда достаточно данных для воспроизведения (хотя возможны прерывания).
  • Прослушайте событие canplaythrough. Оно отправляется, когда предполагается, что аудио должно воспроизводиться до конца без прерываний.

Лучший подход, основанный на событии:

myAudioElement.addEventListener("canplaythrough", event => {
  /* аудио может быть воспроизведено; проиграть, если позволяют разрешения */
  myAudioElement.play();
});

Использование памяти и управление

Если все ссылки на аудиоэлемент, созданные с помощью конструктора Audio() удалены, сам элемент не будет удален из памяти механизмом сборщика мусора JavaScript, если в данный момент идет воспроизведение. Вместо этого продолжится воспроизведение и объект останется в памяти до тех пор, пока не закончится аудио или оно не будет приостановлено (например, путем вызова pause()). В этот момент объект подлежит уничтожению сборщиком мусора.

Спецификации

Спецификация Статус Комментарий
HTML Living Standard
Определение 'Audio()' в этой спецификации.
Живой стандарт

Поддержка браузерами

Таблица совместимости на этой странице генерируется из структурированных данных. Если Вы хотите внести свой вклад в эти данные, просмотрите https://github.com/mdn/browser-compat-data и отправте нам Pull-запрос.

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
Audio() constructorChrome Полная поддержка ДаEdge Полная поддержка 12Firefox Полная поддержка 3.5IE Полная поддержка 10Opera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаFirefox Android Полная поддержка 4Opera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android Полная поддержка Да

Легенда

Полная поддержка  
Полная поддержка

Смотрите также