Компьютерная логика целиком основана на булевой логике: электрический ток либо течет, либо нет; двоичное значение – либо единица, либо ноль; результат расчета – либо истина (true), либо ложь (false).
Не перепутайте булевы атрибуты и булевы значения. Вас можно понять, если вы подумаете, что булев атрибут будет принимать значения true и false. В действительности булево по природе само существование элемента: присутствует он или нет. Даже если напишете атрибуту значение, никакого эффекта это иметь не будет. Написать autoplay="false"
autoplay="no thanks" – то же самое, что написать autoplay.Если вы используете синтаксис XHTML, можете написать autoplay="autoplay"
Если ставить аудиофайл на автоматическое проигрывание не кажется вам достаточно зловредным, вы можете принести еще больше скорби в этот мир, заставив аудиофайл бесконечно повторяться. Другой булев атрибут, loop
audio src="witchitalineman.mp3" autoplay loop
/audio
Использование атрибута loop
autoplay заставит меня искать вас с удвоенной энергией.Вырваться из-под контроля
Элемент audio
controls:audio src="witchitalineman.mp3" controls
/audio
Присутствие атрибута controls
Рис. 3.05.
Используйте атрибут controls, для того чтобы отобразить элементы управления «проиграть», «пауза» и управления громкостьюЕсли вам не нравятся встроенные в браузер элементы управления, можете создать свои собственные. С помощью JavaScript вы можете взаимодействовать с Audio
play и pause) и свойствам (volume и др.). Вот быстрый и простой пример, как использовать элементы button и ужасные обработчики событий, написанные прямо в коде страницы (рис. 3.06):audio id="player" src="witchitalineman.mp3"
/audio
div
button
onclick="document.getElementById(‘player’). play"Проиграть /button
button
onclick="document.getElementById(‘player’). pause"Пауза /button
button
onclick="document.getElementById(‘player’). volume+= 0.1" Громче
/button
button
onclick="document.getElementById(‘player’). volume-= 0.1" Тише
/button
/div
Рис. 3.06.
Элементы управления (Проиграть, Пауза, Громче, Тише), сделанные с помощью элементов buttonБуферизация
В какой-то момент спецификация HTML5 включала еще один булев атрибут для элемента audio
autobuffer был более вежливым и продуманным вариантом неприятного атрибута autoplay. Он позволял авторам сообщить браузеру, что хотя аудиофайл и не нужно начинать проигрывать автоматически, скорее всего в какой-то момент пользователь начнет его проигрывать, поэтому браузеру стоит начать подгружать файл в фоновом режиме.Это был бы полезный атрибут, но, к сожалению, Safari сделал лишний шаг вперед. Этот браузер начал подгружать аудиофайлы вне зависимости от того, присутствует атрибут autobuffer
autobuffer – булева переменная, не было никакого способа сказать Safari, что подгружать аудиофайл не нужно: autobuffer="false" – то же самое, что autobuffer="true" или любое другое значение [9].В данный момент атрибут autobuffer
preload. Это не булев атрибут. Он принимает одно из трех возможных значений: none, auto и metadata. Написав preload="none", вы можете явным образом указать браузеру, что подгружать аудиофайл заранее не нужно:audio src="witchitalineman.mp3" controls preload="none"
/audio