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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
|
---
title: <audio>
slug: Web/HTML/Element/audio
tags:
- Audio
- Element
- HTML
- HTML5
- Media
- Multimedia
- Web
- Веб
- Встраиваемое содержимое
- Встроенный контент
- Медиа
- Справка
- Элемент
- аудио
- мультимедиа
translation_of: Web/HTML/Element/audio
---
<div>{{HTMLRef}}</div>
<p><span class="seoSummary"><strong>HTML-элемент <code><audio></code></strong> используется для встраивания звукового контента в документ. Он может содержать один или более источников аудио, представленных с помощью атрибута <code>src</code> или элемента {{HTMLElement("source")}} – браузер выберет один наиболее подходящий. Он так же может предназначаться для потокового мультимедиа, используя интерфейс {{domxref("MediaStream")}}.</span></p>
<div>{{EmbedInteractiveExample("pages/tabbed/audio.html","tabbed-standard")}}</div>
<p>Приведенный выше пример показывает простое использование элемента <code><audio></code>. По аналогии с элементом {{htmlelement("img")}} мы добавляем путь к мультимедиа, которое мы хотим встроить, в атрибут <code>src</code>. Мы можем добавить другие атрибуты, чтобы указать сведения, такие как автовоспроизведение и повтор, хотим ли мы отображать стандартные элементы управления звуком браузера и т.д.</p>
<p>Контент между открывающим и закрывающим тегами элемента <code><audio></code> (в примере выше) отображается в браузерах, которые не поддерживают этот элемент.</p>
<p>Не все браузеры поддерживают одинаковые <a href="/ru/docs/Web/HTML/Поддерживаемые_медиа_форматы">форматы аудио</a>. Вы можете предоставить множество источников внутри вложенных элементов {{htmlelement("source")}} и тогда браузер будет использовать первый, который он понимает:</p>
<pre class="brush: html"><audio controls>
<source src="myAudio.mp3" type="audio/mpeg">
<source src="myAudio.ogg" type="audio/ogg">
<p>Ваш браузер не поддерживает HTML5 аудио. Вот взамен
<a href="myAudio.mp4">ссылка на аудио</a></p>
</audio></pre>
<p>Другие примечания по использованию:</p>
<ul>
<li>если вы не укажете атрибут <code>controls</code>, тогда аудиоплеер не будет добавлять стандартные элементы управления звуком браузера. Вы можете создать ваши собственные элементы управления в помощью {{glossary("JavaScript")}} и {{domxref("HTMLMediaElement")}} {{glossary("API")}};</li>
<li>чтобы обеспечить точный контроль над вашим аудиоконтентом, {{domxref("HTMLMediaElement")}} инициирует (вызывает) множество различных <a href="#События">событий</a>;</li>
<li>вы так же можете использовать <a href="/ru/docs/Web/API/Web_Audio_API">Web Audio API</a> для непосредственной генерации и управления потоками аудио из кода {{glossary("JavaScript")}};</li>
<li>элементы <code><audio></code> не могут иметь субтитры, в отличие от элементов {{HTMLElement("video")}}. Смотрите "<a class="external" href="https://www.iandevlin.com/blog/2015/12/html5/webvtt-and-audio/">WebVTT и аудио</a>" для более подробной информации.</li>
</ul>
<p>Хороший источник информации по использованию HTML-элемента <code><audio></code> – это руководство для начинающих "<a href="/ru/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content">Видео- и аудиоконтент</a>".</p>
<h2 id="Атрибуты">Атрибуты</h2>
<p>К этому элементу применимы <a href="/ru/docs/Web/HTML/Общие_атрибуты">глобальные атрибуты</a>.</p>
<dl>
<dt>{{htmlattrdef("autoplay")}}</dt>
<dd>Атрибут логического типа. Если он указан, аудио начнет автоматически воспроизводиться, как только сможет это сделать, не дожидаясь завершения загрузки всего файла.
<div class="note"><strong>Заметка</strong>: Сайты, которые автоматически проигрывают аудио (или видео с аудиодорожкой) могут быть неприятными для пользователей, поэтому этого следует по возможности избегать. Если вам необходимо предлагать функцию автовоспроизведения, то вы должны сделать ее Opt-in (вид подписки), то есть когда пользователь специально (сам) включил ее. Тем не менее, это может быть полезно, при создании элементов мультимедиа, чей источник будет установлен позднее под контролем пользователя.</div>
</dd>
<dt>{{htmlattrdef("controls")}}</dt>
<dd>Если этот атрибут присутствует, браузер предложит элементы управления, позволяющие пользователю управлять воспроизведением аудио, в том числе громкостью, перемоткой и паузой.</dd>
<dt>{{htmlattrdef("crossorigin")}}</dt>
<dd>
<p>Этот атрибут указывает, следует ли использовать {{glossary("CORS")}} при загрузке мультимедиа или нет. Допустимые значения:</p>
<ul>
<li><code>anonymous</code>: Запрос cross-origin (т.е. с HTTP-заголовком {{httpheader("Origin")}}) выполняется, но параметры доступа не передаются (т.е. нет {{glossary("cookie")}}, не используется <a class="external" href="https://tools.ietf.org/html/rfc5280">стандарт X.509</a> или базовая HTTP-аутентификация);</li>
<li><code>use-credentials</code>: Запрос cross-origin (т.е. с HTTP-заголовком <code>Origin</code>) выполняется вместе с передачей параметров доступа (т.е. есть cookie, используется стандарт X.509 или базовая HTTP-аутентификация).</li>
</ul>
<p>Если этот атрибут не задан, то CORS при загрузке мультимедиа не используется (т.е. без отправки HTTP-заголовка {{httpheader("Origin")}}). Если задан неправильно, то он обрабатывается так, как если бы использовалось значение <code>anonymous</code>. Для получения дополнительной информации смотрите "<a href="/ru/docs/Web/HTML/CORS_settings_attributes">Настройки атрибутов CORS</a>".</p>
</dd>
<dt>{{htmlattrdef("loop")}}</dt>
<dd>Атрибут логического типа. Если он указан, проигрыватель будет автоматически возвращаться в начало при достижении конца аудио.</dd>
<dt>{{htmlattrdef("muted")}}</dt>
<dd>Атрибут логического типа, который указывает, будет ли звук изначально отключен. Значением по умолчанию является <code>false</code>.</dd>
<dt>{{htmlattrdef("preload")}}</dt>
<dd>
<p>Этот атрибут предназначен для того, чтобы указать браузеру, что, по мнению автора, приведет к лучшему взаимодействию с пользователем. Он может иметь одно из следующих значений:</p>
<ul>
<li><code>none</code>: указывает, что аудио не должно предварительно загружаться;</li>
<li><code>metadata</code>: указывает, что предварительно загружаются только метаданные аудио (например, продолжительность аудио);</li>
<li><code>auto</code>: указывает, что весь файл аудио может быть предварительно загружен, даже если пользователь не предполагает его использовать;</li>
<li><em>пустая строка</em>: синоним значения <code>auto</code>.</li>
</ul>
<p>Значение по умолчанию отличается для каждого браузера. Спецификация рекомендует установить значение <code>metadata</code>.</p>
<div class="note"><strong>Примечание:</strong>
<ul>
<li>Атрибут <code>autoplay</code> имеет приоритет над <code>preload</code>. Если <code>autoplay</code> указан, браузер, очевидно, должен будет начать загрузку аудио для воспроизведения.</li>
<li>Спецификация не обязывает браузер придерживаться значения этого атрибута – это просто совет.</li>
</ul>
</div>
</dd>
<dt>{{htmlattrdef("src")}}</dt>
<dd>{{glossary("URL")}} аудио для встраивания. Это является темой <a href="/ru/docs/Web/HTTP/CORS">контроля доступа HTTP</a>. Этот атрибут является необязательным; вы можете вместо него использовать элемент {{htmlelement("source")}} внутри блока audio (<code><audio></audio></code>), чтобы указать аудио для встраивания.</dd>
</dl>
<h2 id="События">События</h2>
<p>Этот элемент может инициировать (вызывать) различные <a href="/ru/docs/Web/Guide/Events/Media_events">события</a>.</p>
<h2 id="Взаимодействие_с_CSS">Взаимодействие с CSS</h2>
<p>Элемент <code><audio></code> не имеет собственного визуального вывода, если только не указан атрибут <code>controls</code>, в этом случае отображаются стандартные элементы управления браузера.</p>
<p>Стандартные элементы управления имеют значение свойства {{cssxref("display")}}, равное <code>inline</code>, и зачастую хорошей идеей является установка этого свойства в значение <code>block</code>, чтобы улучшить контроль над позиционированием и разметкой, если вы не хотите, чтобы он находился внутри текстового блока или чего-то подобного.</p>
<p>Вы можете стилизовать стандартные элементы управления CSS-свойствами, которые влияют на блок как единое целое, например, вы можете задать {{cssxref("border")}} и {{cssxref("border-radius")}}, {{cssxref("padding")}}, {{cssxref("margin")}} и т.д. Тем не менее вы не можете стилизовать отдельные компоненты внутри аудиоплеера (например, изменить размер кнопок, иконок, размер шрифта и т.д.), и элементы управления в разных браузерах отличаются.</p>
<p>Чтобы получить внешний вид совместимый с разными браузерами, вам необходимо создать собственные элементы управления. Они могут быть размечены и стилизованы любым удобным для вас способом и затем может быть использован {{glossary("JavaScript")}} вместе с {{glossary("API")}} {{domxref("HTMLMediaElement")}} для объединения функций, которые они выполняют.</p>
<p>"<a href="/en-US/docs/Web/Guide/Audio_and_video_delivery/Video_player_styling_basics">Основы стилизации видеопроигрывателя</a>" предоставляют некоторые полезные методы стилизации – они написаны в контексте {{HTMLElement("video")}}, но в значительной степени применимы и к <code><audio></code>.</p>
<h2 id="Примеры">Примеры</h2>
<h3 id="Базовое_использование">Базовое использование</h3>
<p>Следующий пример показывает простое использования элемента <code><audio></code> для воспроизведения файла в формате OGG. Он будет автоматически воспроизводиться из-за атрибута <code>autoplay</code>. Также он содержит резервный контент, на случай отсутствия поддержи браузером элемента <code><audio></code>.</p>
<pre class="brush: html"><!-- Простое воспроизведение аудио -->
<audio
src="AudioTest.ogg"
autoplay>
Ваш браузер не поддерживает элемент <code>audio</code>.
</audio>
</pre>
<h3 id="Элемент_<audio>_с_элементом_<source>">Элемент <audio> с элементом <source></h3>
<p>В этом примере указывается, какой аудиотрек будет добавлен с помощью атрибута <code>src</code> во вложенный элемент {{HTMLElement("source")}}, а не в непосредственно элемент <code><audio></code>. Всегда полезно включать {{glossary("MIME type", "MIME-тип")}} файла в атрибут <code>type</code>, так как браузер может немедленно определить, может ли он воспроизвести этот файл, и не тратить на него время, если не может.</p>
<pre class="brush: html"><audio controls="controls">
<source src="foo.wav" type="audio/wav">
Ваш браузер не поддерживает элемент <code>audio</code>.
</audio>
</pre>
<h3 id="Элемент_<audio>_с_множеством_элементов_<source>">Элемент <audio> с множеством элементов <source></h3>
<p>Этот пример включает множество элементов <code><source></code>. Браузер попытается загрузить источник из первого элемента <code><source></code> (Opus), если он не в состоянии воспроизвести его, тогда он перейдет ко второму (Vorbis) и, наконец, к третьему (MP3), если все предыдущие по каким-либо причинам не могут быть воспроизведены браузером:</p>
<pre class="brush: html"><audio controls="">
<source src="foo.opus" type="audio/ogg; codecs=opus"/>
<source src="foo.ogg" type="audio/ogg; codecs=vorbis"/>
<source src="foo.mp3" type="audio/mpeg"/>
</audio></pre>
<h2 id="Проблемы_доступности">Проблемы доступности</h2>
<p>Audio with spoken dialog should provide both captions and transcripts that accurately describe its content. Captions allow people who are experiencing hearing loss to understand an audio recording's content as the recording is being played, while transcripts allow people who need additional time to be able to review the recording's content at a pace and format that is comfortable for them.</p>
<p>If automatic captioning services are used, it is important to review the generated content to ensure it accurately represents the source audio.</p>
<p>In addition to spoken dialog, subtitles and transcripts should also identify music and sound effects that communicate important information. This includes emotion and tone:</p>
<pre>1
00:00:00 --> 00:00:45
[Energetic techno music]
2
00:00:46 --> 00:00:51
Welcome to the Time Keeper's podcast! In this episode we're discussing which Swisswatch is a wrist switchwatch?
16
00:00:52 --> 00:01:02
[Laughing] Sorry! I mean, which wristwatch is a Swiss wristwatch?
</pre>
<ul>
<li><a href="/en-US/docs/Plugins/Flash_to_HTML5/Video/Subtitles_captions">Субтитры и скрытые субтитры</a>.</li>
<li><a href="/ru/docs/Web/API/WebVTT_API">Формат Web Video Text Tracks (WebVTT)</a>.</li>
<li><a class="external" href="https://webaim.org/techniques/captions/">WebAIM: субтитры, стенограммы и описания аудио</a>.</li>
<li><a href="/ru/docs/Web/Accessibility/Understanding_WCAG/Perceivable#Guideline_1.2_—_Providing_text_alternatives_for_time-based_media">Понимание WCAG, Руководство 1.2 объяснения</a>.</li>
<li><a class="external" href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/media-equiv-av-only-alt.html">Понимание критерия успешного исхода 1.2.1 | W3C Понимание WCAG 2.0</a></li>
<li><a class="external" href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/media-equiv-captions.html">Понимание критерия успешного исхода 1.2.2 | W3C Понимание WCAG 2.0</a></li>
</ul>
<h2 id="Техническая_сводка">Техническая сводка</h2>
<table class="properties">
<tbody>
<tr>
<th scope="row"><a href="/ru/docs/Web/Guide/HTML/Content_categories">Категории контента</a></th>
<td><a href="/ru/docs/Web/Guide/HTML/Content_categories#Потоковый_контент">Потоковый контент</a>, <a href="/ru/docs/Web/Guide/HTML/Content_categories#Phrasing_content">фразовый контент</a>, <a href="/ru/docs/Web/Guide/HTML/Content_categories#Встроенный_контент">встроенный контент</a>. Если элемент имеет атрибут <code>controls</code>, он так же принадлежит к категориям <a href="/ru/docs/Web/Guide/HTML/Content_categories#Интерактивный_контент">интерактивного</a> и <a href="/ru/docs/Web/Guide/HTML/Content_categories#Явный_контент">явного</a> контента.</td>
</tr>
<tr>
<th scope="row">Разрешенное содержимое</th>
<td>Если элемент имеет атрибут <code>src</code>: ноль или более элементов {{HTMLElement("track")}}, за которыми следует <a href="/ru/docs/Web/Guide/HTML/Content_categories#Прозрачная_модель_контента">прозрачный контентет</a>, который не содержит элементов <code><audio></code> или {{HTMLElement("video")}}.<br>
Иначе: ноль или более элементов {{HTMLElement("source")}}, за которыми следует ноль или более элементов {{HTMLElement("track")}}, за которыми следует <a href="/ru/docs/Web/Guide/HTML/Content_categories#Прозрачная_модель_контента">прозрачный контент</a>, который не содержит элементов <code><audio></code> или {{HTMLElement("video")}}.</td>
</tr>
<tr>
<th scope="row">Пропуск тега</th>
<td>Ни одного; Оба тега, открывающий и закрывающий, являются обязательными.</td>
</tr>
<tr>
<th scope="row">Разрешенные родительские элементы</th>
<td>Любой элемент, который разрешает встроенный контент в качестве содержимого.</td>
</tr>
<tr>
<th scope="row">Разрешённые роли ARIA</th>
<td>{{ARIARole("application")}}</td>
</tr>
<tr>
<th scope="row">DOM-интерфейс</th>
<td>{{domxref("HTMLAudioElement")}}</td>
</tr>
</tbody>
</table>
<h2 id="Спецификации">Спецификации</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Спецификация</th>
<th scope="col">Статус</th>
<th scope="col">Комментарий</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('HTML WHATWG', 'embedded-content.html#the-audio-element', '<audio>')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-audio-element', '<audio>')}}</td>
<td>{{Spec2('HTML5 W3C')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
<p>{{Compat("html.elements.audio")}}</p>
<h2 id="Смотрите_также">Смотрите также</h2>
<ul>
<li><a href="/ru/docs/Web/HTML/Поддерживаемые_медиа_форматы">Медиа форматы для HTML-элементов audio и video</a>.</li>
<li><a href="/ru/docs/Web/API/Web_Audio_API">Web Audio API</a>.</li>
<li>{{domxref("HTMLAudioElement")}}.</li>
<li><a href="/en-US/docs/XPCOM_Interface_Reference/NsIDOMHTMLMediaElement"><code>nsIDOMHTMLMediaElement</code></a>.</li>
<li>{{htmlelement("source")}}.</li>
<li>{{htmlelement("video")}}.</li>
<li><a href="/ru/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content">Видео и аудио контент</a>.</li>
<li><a href="/en-US/Apps/Fundamentals/Audio_and_video_delivery/Cross-browser_audio_basics">Основы кросс-браузерного audio</a>.</li>
</ul>
|