Audio()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Конструктор Audio()
создаёт и возвращает новый HTMLAudioElement
объект, который может быть прикреплён к документу, чтобы пользователь мог взаимодействовать и/или слушать его, либо может использоваться вне экрана для управления и воспроизведения звука.
Синтаксис
audioObj = new Audio(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()
). В этот момент объект подлежит уничтожению сборщиком мусора.
Спецификации
Specification |
---|
HTML Standard # dom-audio-dev |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
- Web media technologies
- HTML-элемент, реализующий этот интерфейс:
<audio>
.