Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

new Audio("chime.wav").play; // Загрузить и проиграть звуковой эффект

Конструктор

Audio
возвращает тот же объект, который будет получен при обращении к элементу
<audio>
в документе или при создании нового аудиоэлемента вызовом
document.сreateElement("audio").
Обратите внимание, что все вышесказанное относится только к аудиоэлементам: механизм поддержки мультимедиа не имеет соответствующего конструктора
Video
.

**************************************

21.2.1. Выбор типа и загрузка

Если вам потребуется проверить, способен ли мультимедийный элемент воспроизводить мультмедийные данные в определенном формате, передайте М1МЕ-тип этих данных (при необходимости с параметром

codec
) методу
сапРlауТуре
. Элемент вернет пустую строку (ложное значение), если он не способен проигрывать мультимедийные данные в этом формате. В противном случае он вернет строку «maybe» (возможно) или «probably» (вероятно). Из-за сложной природы аудио-и видеокодеков проигрыватель в общем случае не может сообщить ничего более определенного, чем «probably» (вероятно), не предприняв фактическую попытку загрузить и воспроизвести данные указанного типа:

var а = new Audio;

if (a.canPlayType("audio/wav")) {

a.src = "soundeffect.wav";

a.play;

}

Когда свойству

src
мультимедийного элемента присваивается значение, он начинает процесс загрузки мультимедийных данных. (Этот процесс не продвинется слишком далеко, если не установить в свойстве
preload
значение «auto».) Присваивание нового значения свойству
src
во время загрузки или воспроизведения других мультимедийных данных прервет загрузку или воспроизведение старых данных. Если вместо настройки атрибута
src
вы будете добавлять в мультимедийный элемент элементы
<source>,
то он не сможет приступить к выбору нужного элемента, так как не будет знать, когда закончится формирование полного комплекта элементов
<source>,
и не сможет начать загрузку данных, пока явно не будет вызван метод
load
.

21.2.2. Управление воспроизведением

Самыми важными методами элементов

<audio>
и
<video>
являются методы
рlау
и
pause
, которые запускают и останавливают воспроизведение:

// Когда документ будет загружен, запустить фоновое проигрывание мелодии

window.addEventListener("load", function {

document.getElementById("music").play;

}, false);

Помимо возможности запустить и остановить проигрывание звука или видео имеется возможность выполнить переход к требуемому месту в мультимедийных данных установкой свойства

currentTime
. Это свойство определяет время в секундах, к которому должен быть выполнен переход, и его можно устанавливать в процессе проигрывания данных или во время паузы. (Свойства
initialTime
и
duration
ограничивают диапазон допустимых значений свойства
currentTime
; подробнее об этих свойствах рассказывается ниже.)

Свойство

volume
определяет уровень громкости как числовое значение в диапазоне от 0 (минимальная громкость) до 1 (максимальная громкость). Свойству
muted
может быть присвоено значение true, чтобы выключить звук, или false, чтобы продолжить воспроизведение с установленным уровнем громкости.

Свойство

playbackRate
определяет скорость проигрывания. Значение 1,0 соответствует нормальной скорости. Значения выше 1 соответствуют «ускоренному воспроизведению вперед», а значения от 0 до 1 - «замедленному воспроизведению вперед». Отрицательные значения предполагают проигрывание звука или видео в обратном направлении, но на момент написания этих строк броузеры не поддерживали такую возможность. Элементы
<audio>
и
<video>
также имеют свойство
defaultPlaybackRate
. Всякий раз, когда вызывается метод
рlау,
значение свойства
defaultPlaybackRate
присваивается свойству
playbackRate
.

Обратите внимание, что свойства

currentTime, volume, muted
и
playbackRate
не являются единственными средствами управления воспроизведением. Если элемент
<audio>
или
<video>
имеет атрибут
controls
, он отображает элементы управления проигрывателем, давая пользователю возможность управлять воспроизведением. В этом случае сценарий может читать значения таких свойств, как
muted
и
currentTime
, чтобы определить, как протекает воспроизведение мультимедийных данных.

HTML-атрибуты

controls, loop, preload
и
autoplay
оказывают влияние на воспроизведение аудио и видео, а также доступны для чтения и записи как JavaScript-свойства. Атрибут
controls
определяет, должны ли отображаться элементы управления проигрывателем. Присвойте этому свойству значение true, чтобы отобразить элементы управления, или false, чтобы скрыть их. Логическое свойство
loop
определяет, должно ли воспроизведение начинаться сначала по достижении конца (true) или нет (false). Свойство
preload
определяет, какой объем мультимедийных данных должен быть загружен прежде, чем пользователь сможет запустить проигрывание. Значение «none» означает, что предварительная загрузка данных не требуется. Значение «metadata» означает, что предварительно должны быть загружены такие метаданные, как продолжительность, битрейт и размер кадра, но предварительная загрузка самих данных не требуется. При отсутствии атрибута
preload
броузеры обычно загружают только метаданные. Значение «auto» означает, что броузер должен предварительно загрузить такой объем данных, какой он сочтет нужным. Наконец, свойство
autoplay
определяет, должно ли начаться воспроизведение автоматически, после загрузки достаточного объема данных. Присваивание свойству
autoplay
значения true подразумевает, что броузер должен предварительно загрузить некоторый объем данных.

21.2.3. Определение состояния мультимедийных элементов

Элементы

<audio>
и
<video>
имеют несколько свойств, доступных ТОЛЬКО ДЛЯ чтения, которые описывают текущее состояние данных и проигрывателя. Свойство
paused
имеет значение true, если проигрывание было приостановлено. Свойство
seeking
имеет значение true, если проигрыватель выполняет переход к новой позиции в проигрываемых данных. Свойство
ended
имеет значение true, если проигрыватель достиг конца и остановился. (Свойство
ended
никогда не приобретет значение true, если свойству
loop
было присвоено значение true.)

Свойство

duration
определяет продолжительность проигрываемых данных в секундах. Если прочитать это свойство до того, как будут получены метаданные, оно вернет значение
NaN
. Для потоковых данных с неопределенной продолжительностью, например, при прослушивании Интернет-радио, это свойство возвращает значение
Infinity
.

Свойство

initialTime
определяет начальное время в проигрываемых данных в секундах. Для мультимедийных клипов с фиксированной продолжительностью это свойство обычно имеет значение 0. Для потоковых данных это свойство возвращает самое раннее время данных в буфере, к которому еще можно вернуться. Свойство
currentTime
не может быть установлено в значение меньше чем значение свойства
initialTime
.

Поделиться:
Популярные книги

Кондотьер

Листратов Валерий
7. Ушедший Род
Фантастика:
фэнтези
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Кондотьер

Матабар. II

Клеванский Кирилл Сергеевич
2. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар. II

Камень. Книга 3

Минин Станислав
3. Камень
Фантастика:
фэнтези
боевая фантастика
8.58
рейтинг книги
Камень. Книга 3

Ермак. Телохранитель

Валериев Игорь
2. Ермак
Фантастика:
альтернативная история
7.00
рейтинг книги
Ермак. Телохранитель

Бастард Императора. Том 3

Орлов Андрей Юрьевич
3. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 3

Хозяин Теней 4

Петров Максим Николаевич
4. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 4

Камень. Книга 4

Минин Станислав
4. Камень
Фантастика:
боевая фантастика
7.77
рейтинг книги
Камень. Книга 4

Инженер Петра Великого 2

Гросов Виктор
2. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Инженер Петра Великого 2

Сердце Дракона. Том 12

Клеванский Кирилл Сергеевич
12. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.29
рейтинг книги
Сердце Дракона. Том 12

Монстр из прошлого тысячелетия

Еслер Андрей
5. Соприкосновение миров
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Монстр из прошлого тысячелетия

Бастард Императора. Том 6

Орлов Андрей Юрьевич
6. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 6

Барон диктует правила

Ренгач Евгений
4. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон диктует правила

Эволюционер из трущоб. Том 6

Панарин Антон
6. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эволюционер из трущоб. Том 6

Властелин Севера

Корнуэлл Бернард
3. Саксонские хроники
Приключения:
исторические приключения
8.67
рейтинг книги
Властелин Севера