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

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

Жанры

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
.

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

Старый, но крепкий 3

Крынов Макс
3. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 3

Древесный маг Орловского княжества 3

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

Князь Целитель 5

Ткачев Андрей Юрьевич
5. Князь Целитель
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Князь Целитель 5

Убивать чтобы жить 3

Бор Жорж
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 3

Товарищ "Чума"

lanpirot
1. Товарищ "Чума"
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Товарищ Чума

Кодекс Охотника. Книга XXXII

Винокуров Юрий
32. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXII

Евреи России. Времена и события. История евреев Российской империи

Кандель Феликс Соломонович
Научно-образовательная:
история
5.00
рейтинг книги
Евреи России. Времена и события. История евреев Российской империи

Герой

Бубела Олег Николаевич
4. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Герой

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

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

Эммануэль

Арсан Эммануэль
1. Эммануэль
Любовные романы:
эро литература
7.38
рейтинг книги
Эммануэль

На границе империй. Том 6

INDIGO
6. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.31
рейтинг книги
На границе империй. Том 6

Последний Паладин. Том 5

Саваровский Роман
5. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 5

Телохранитель Генсека. Том 4

Алмазный Петр
4. Медведев
Фантастика:
попаданцы
альтернативная история
6.00
рейтинг книги
Телохранитель Генсека. Том 4

Снайпер

Поселягин Владимир Геннадьевич
3. Жнец
Фантастика:
боевая фантастика
попаданцы
5.60
рейтинг книги
Снайпер