1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
---
title: Audio()
slug: Web/API/HTMLAudioElement/Audio
tags:
- аудио
translation_of: Web/API/HTMLAudioElement/Audio
original_slug: Web/API/HTMLAudioElement/Audio()
---
<p>{{APIRef("HTML DOM")}}</p>
<p><span class="seoSummary">Конструктор <code><strong>Audio()</strong></code> создаёт и возвращает новый {{domxref("HTMLAudioElement")}} объект, который может быть прикреплён к документу, чтобы пользователь мог взаимодействовать и/или слушать его, либо может использоваться вне экрана для управления и воспроизведения звука.</span></p>
<h2 id="Синтаксис">Синтаксис</h2>
<pre class="syntaxbox"><em>audioObj</em> = new Audio(<em>url</em>);</pre>
<h3 id="Параметры">Параметры</h3>
<dl>
<dt><code>url</code> {{optional_inline}}</dt>
<dd>Необязательный параметр {{domxref("DOMString")}}, содержащий URL-адрес аудиофайла, который будет связан с новым аудиоэлементом.</dd>
</dl>
<h3 id="Возвращаемое_значение">Возвращаемое значение</h3>
<p>Новый {{domxref("HTMLAudioElement")}} объект, настроенный для воспроизведения файла, указанного в <code>url</code>. Свойство {{domxref("HTMLMediaElement.preload", "preload")}} нового объекта имеет значение по умолчанию <code>auto</code>, а его свойство <code>src</code> — указанный URL-адрес или <code>null</code>, если адрес не указан. Если указан URL-адрес, браузер начинает <em>асинхронно</em> загружать медиаресурс перед возвратом нового объекта.</p>
<ul>
</ul>
<h2 id="Примечания_по_использованию">Примечания по использованию</h2>
<p>Вы также можете использовать другие методы создания элементов, такие как метод {{domxref("Document.createElement", "createElement()")}} объекта {{domxref("document")}}, для создания нового {{domxref("HTMLAudioElement")}} объекта.</p>
<h3 id="Определение_когда_воспроизведение_может_начаться">Определение, когда воспроизведение может начаться</h3>
<p>Существует три способа определить насколько аудио-файл загружен, чтобы начать воспроизведение:</p>
<ul>
<li>Проверьте значение свойства {{domxref("HTMLMediaElement.readyState", "readyState")}}. Если оно равняется <code>HTMLMediaElement.HAVE_FUTURE_DATA</code>, значит загружено достаточно данных, чтобы начать воспроизведение и проиграть хотя бы короткое время. Если <code>HTMLMediaElement.HAVE_ENOUGH_DATA</code> — доступно достаточно данных, чтобы воспроизводить аудио до конца без прерываний, учитывая текущую скорость загрузки.</li>
<li>Прослушайте событие {{domxref("HTMLMediaElement.canplay_event", "canplay")}}. Оно отправляется элементу <code><audio></code>, когда достаточно данных для воспроизведения (хотя возможны прерывания).</li>
<li>Прослушайте событие {{domxref("HTMLMediaElement.canplaythrough_event", "canplaythrough")}}. Оно отправляется, когда предполагается, что аудио должно воспроизводиться до конца без прерываний.</li>
</ul>
<p>Лучший подход, основанный на событии:</p>
<pre class="brush: js">myAudioElement.addEventListener("canplaythrough", event => {
/* аудио может быть воспроизведено; проиграть, если позволяют разрешения */
myAudioElement.play();
});</pre>
<h3 id="Использование_памяти_и_управление">Использование памяти и управление</h3>
<p>Если все ссылки на аудиоэлемент, созданные с помощью конструктора <code>Audio()</code> удалены, сам элемент не будет удалён из памяти механизмом сборщика мусора JavaScript, если в данный момент идёт воспроизведение. Вместо этого продолжится воспроизведение и объект останется в памяти до тех пор, пока не закончится аудио или оно не будет приостановлено (например, путём вызова {{domxref("HTMLMediaElement.pause", "pause()")}}). В этот момент объект подлежит уничтожению сборщиком мусора.</p>
<h2 id="Спецификации">Спецификации</h2>
{{Specifications}}
<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
<p>{{Compat}}</p>
<h2 id="Смотрите_также">Смотрите также</h2>
<ul>
<li><a href="/en-US/docs/Web/Media">Web media technologies</a></li>
<li>HTML-элемент, реализующий этот интерфейс: {{HTMLElement("audio")}}.</li>
</ul>
|