aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/htmlaudioelement/audio/index.html
blob: d118155c00d9bee5078949acbd8616bf47d64a85 (plain)
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>&lt;audio&gt;</code>, когда достаточно данных для воспроизведения (хотя возможны прерывания).</li>
 <li>Прослушайте событие {{domxref("HTMLMediaElement.canplaythrough_event", "canplaythrough")}}. Оно отправляется, когда предполагается, что аудио должно воспроизводиться до конца без прерываний.</li>
</ul>

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

<pre class="brush: js">myAudioElement.addEventListener("canplaythrough", event =&gt; {
  /* аудио может быть воспроизведено; проиграть, если позволяют разрешения */
  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("api.HTMLAudioElement.Audio")}}</p>

<h2 id="Смотрите_также">Смотрите также</h2>

<ul>
 <li><a href="/en-US/docs/Web/Media">Web media technologies</a></li>
 <li>HTML-элемент, реализующий этот интерфейс: {{HTMLElement("audio")}}.</li>
</ul>