21.2.2. Управление воспроизведением
Самыми важными методами элементов
<b><audio></b>
и
<b><video></b>
являются методы
<b>рlау()</b>
и
<b>pause()</b>
, которые запускают и останавливают воспроизведение:
<b>// Когда документ будет загружен, запустить фоновое проигрывание мелодии </b>
<b>window.addEventListener("load", function() {</b>
<b> document.getElementById("music").play();</b>
<b> }, false);</b>
Помимо возможности запустить и остановить проигрывание звука или видео имеется возможность выполнить переход к требуемому месту в мультимедийных данных установкой свойства
<b>currentTime</b>
. Это свойство определяет время в секундах, к которому должен быть выполнен переход, и его можно устанавливать в процессе проигрывания данных или во время паузы. (Свойства
<b>initialTime</b>
и
<b>duration</b>
ограничивают диапазон допустимых значений свойства
<b>currentTime</b>
; подробнее об этих свойствах рассказывается ниже.)
Свойство
<b>volume</b>
определяет уровень громкости как числовое значение в диапазоне от 0 (минимальная громкость) до 1 (максимальная громкость). Свойству
<b>muted</b>
может быть присвоено значение true, чтобы выключить звук, или false, чтобы продолжить воспроизведение с установленным уровнем громкости.
Свойство
<b>playbackRate</b>
определяет скорость проигрывания. Значение 1,0 соответствует нормальной скорости. Значения выше 1 соответствуют «ускоренному воспроизведению вперед», а значения от 0 до 1 - «замедленному воспроизведению вперед». Отрицательные значения предполагают проигрывание звука или видео в обратном направлении, но на момент написания этих строк броузеры не поддерживали такую возможность. Элементы
<b><audio></b>
и
<b><video></b>
также имеют свойство
<b>defaultPlaybackRate</b>
. Всякий раз, когда вызывается метод
<b>рlау(),</b>
значение свойства
<b>defaultPlaybackRate</b>
присваивается свойству
<b>playbackRate</b>
.
Обратите внимание, что свойства
<b>currentTime, volume, muted</b>
и
<b>playbackRate</b>
не являются единственными средствами управления воспроизведением. Если элемент
<b><audio></b>
или
<b><video></b>
имеет атрибут
<b>controls</b>
, он отображает элементы управления проигрывателем, давая пользователю возможность управлять воспроизведением. В этом случае сценарий может читать значения таких свойств, как
<b>muted</b>
и
<b>currentTime</b>
, чтобы определить, как протекает воспроизведение мультимедийных данных.
HTML-атрибуты
<b>controls, loop, preload</b>
и
<b>autoplay</b>
оказывают влияние на воспроизведение аудио и видео, а также доступны для чтения и записи как JavaScript-свойства. Атрибут
<b>controls</b>
определяет, должны ли отображаться элементы управления проигрывателем. Присвойте этому свойству значение true, чтобы отобразить элементы управления, или false, чтобы скрыть их. Логическое свойство
<b>loop</b>
определяет, должно ли воспроизведение начинаться сначала по достижении конца (true) или нет (false). Свойство
<b>preload</b>
определяет, какой объем мультимедийных данных должен быть загружен прежде, чем пользователь сможет запустить проигрывание. Значение «none» означает, что предварительная загрузка данных не требуется. Значение «metadata» означает, что предварительно должны быть загружены такие метаданные, как продолжительность, битрейт и размер кадра, но предварительная загрузка самих данных не требуется. При отсутствии атрибута
<b>preload</b>
броузеры обычно загружают только метаданные. Значение «auto» означает, что броузер должен предварительно загрузить такой объем данных, какой он сочтет нужным. Наконец, свойство
<b>autoplay</b>
определяет, должно ли начаться воспроизведение автоматически, после загрузки достаточного объема данных. Присваивание свойству
<b>autoplay</b>
значения true подразумевает, что броузер должен предварительно загрузить некоторый объем данных.
21.2.3. Определение состояния мультимедийных элементов
Элементы
<b><audio></b>
и
<b><video></b>
имеют несколько свойств, доступных ТОЛЬКО ДЛЯ чтения, которые описывают текущее состояние данных и проигрывателя. Свойство
<b>paused</b>
имеет значение true, если проигрывание было приостановлено. Свойство
<b>seeking</b>
имеет значение true, если проигрыватель выполняет переход к новой позиции в проигрываемых данных. Свойство
<b>ended</b>
имеет значение true, если проигрыватель достиг конца и остановился. (Свойство
<b>ended</b>
никогда не приобретет значение true, если свойству
<b>loop</b>
было присвоено значение true.)
Свойство
<b>duration</b>
определяет продолжительность проигрываемых данных в секундах. Если прочитать это свойство до того, как будут получены метаданные, оно вернет значение
<b>NaN</b>
. Для потоковых данных с неопределенной продолжительностью, например, при прослушивании Интернет-радио, это свойство возвращает значение
<b>Infinity</b>
.
Свойство
<b>initialTime</b>
определяет начальное время в проигрываемых данных в секундах. Для мультимедийных клипов с фиксированной продолжительностью это свойство обычно имеет значение 0. Для потоковых данных это свойство возвращает самое раннее время данных в буфере, к которому еще можно вернуться. Свойство
<b>currentTime</b>
не может быть установлено в значение меньше чем значение свойства
<b>initialTime</b>
.