HTML и CSS за начинаещи

HTML и CSS за начинаещи (Част 22): Мултимедия за уебсайта (1)

Всички видеоклипове от урока HTML и CSS за начинаещи

За да можем всички да се потопим в спомените си за момент, един пример за това, как типично се вграждат видеоклипове в уебсайт:

<object classid="clsid:d27cdb6e-ae6-11cf-96b8-444553540000" 
width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0">
<param name="allowFullScreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="src" value="http://www.youtube.com/v/oHg5SJYRHA0&hl=en&fs=1&" />
<param name="allowfullscreen" value="true" />
<embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/oHg5SJYRHA0&hl=en&fs=1&" allowscriptaccess="always" allowfullscreen="true">
</embed>
</object>

Такава синтаксис е далеч от красив.

HTML & CSS за начинаещи (част 22): Мултимедия за уебсайта (1)

Но дори ако изключим естетичния аспект: Синтаксисът в този вид е прекалено податлив на грешки и прекалено сложен. В HTML5 вграждането на видеоклипове е много по-лесно. За целта се използва елементът video.

Ето един пример за това как може да се вгради този video елемент:

<video src="video.ogv" width="300" height="200">
   ваш браузър не поддържа HTML5
</video>



Това е най-лесният начин в този вид. Три атрибута са ключови при този вид синтаксис. Чрез src се посочва видеоклипът, който да се вгради. Внимавайте да посочите правилния път. Двете атрибута width и height определят широчината и височината на видеоклипа. Ако не се посочат нито един от двете стойности, видеоклипът ще се покаже в оригиналния си размер. Ако посочите само една стойност, другата ще бъде автоматично пресметната от браузъра. Атрибутът autoplay насочва браузъра да стартира видеоклипа автоматично, след като страницата е заредена. Този атрибут обикновено не трябва да се задава, тъй като автоматичното възпроизвеждане обикновено не се желае от потребителите. Това важи още повече за потребителите, използващи мобилни устройства с ниска пропускливост. Друг полезен атрибут е controls. Като го използвате, браузърът ще покаже стандартни контроли за възпроизвеждане и звук.

<video src="video.ogv" width="300" height="200" controls>
   ваш браузър не поддържа HTML5
</video>

Ето как изглежда в браузъра:

HTML и CSS за начинаещи (Част 22): Мултимедия за уебсайта (1)

Чрез показаната лента можете не само да поставите на пауза и да рестартирате видеоклипа, но и да регулирате силата на звука.

HTML и CSS за начинаещи (част 22): Мултимедия за уебсайта (1)

Чрез атрибута poster моментално може да се посочи изображение, което да се показва до стартирането на видеоклипа. Използва се атрибута poster.

<video src="video.ogv" width="300" height="200" poster="video.gif">
   ваш браузър не поддържа HTML5
</video>



Повторно обърнете внимание на правилния път, за да се види изображението.

HTML и CSS за начинаещи (част 22): Мултимедия за уебсайта (1)

Бъдете внимателни при използването на атрибута autoplay. Защото този атрибут задава, че видеоклипът трябва да се възпроизведе автоматично, щом е наличен.

<video src="video.ogv" width="300" height="200" autoplay>
   ваш браузър не поддържа HTML5
</video>



Относно трафика, атрибутът preload може да бъде интересен. Този атрибут управлява предварителното зареждане. Атрибутът може да приеме следните стойности:

auto – Браузърът може да зареди целия файл.

none – Файлът не трябва да бъде предварително зареден.

metadata – Файлът може да бъде предварително зареден.

Ако липсва атрибутът за предварително зареждане, браузърът ще прилага предварителните си настройки.

Видеоклипове и Кодеци

Тези, които се занимават с вграждането и възпроизвеждането на видеоклипове в уебсайтове, някога ще се сблъскат с проблема на различните кодеци. Благодарение на тези кодеци, видеоклиповете могат ефективно да се компресират и декомпресират. Проблемът е, че производителите на браузъри все още не са се споразумели за общ формат на кодека. За HTML5 (и накрая за вас също) това означава, че няма единен кодек за видеоклипове и аудио файлове.

За видеоклиповете сега стандартизирани са форматите Ogg и MP4. Затова винаги сте в безопасност, когато предлагате видео в тези два формата. За това към елемента за видео се присвояват два source елемента.

<video width="400" height="300" controls="controls">
    <source src="video.mp4" type="video/mp4" />
    <source src="video.ogg" type="video/ogg" />
 </video>



Тук не посочвате източника на видео в елемента video. Вместо това се правят само общи изявления за представянето. Кое видео да се покаже, се определя чрез елемента source. На атрибута src се присвоява съответното видео. След type следва спецификация на вида видео или в кой формат е видеото.

Ако са посочени няколко елемента source, браузърът винаги ще възпроизведе първото видео, което "подхожда". Значението на "подхождащо" ще бъде обяснено по-долу.

Но наистина кой браузър поддържа кой формат? Отговорът на този въпрос се дава в следната таблица.

БраузърOgg Theora (.ogg)h.264 (.mp4)
Internet ExplorerОт версия 9
Mozilla FirefoxДа
Google ChromeДаДа
OperaДа
SafariДа
iPhoneДа
AndroidДа



Таблицата демонстрира дилемата: интерпретацията на форматите се разпределя почти равномерно между различните браузъри. Поради това почти сме принудени да посочим видеа в двете формата.

Чрез media атрибута, който може да бъде присвоен само на елемента source, можете ясно да посочите за кой тип медийно съдържание е подходящото видео. За посочване на видеа специално за определени устройства, на атрибута src се присвоява media атрибута. Чрез този media атрибут се посочва желаният тип от медията.

Един възможен начин за използване на елемента source би изглеждал по следният начин:

<video width="400" height="300">
    <!-- Само за мобилни устройства -->
    <source src="video_mobil.ogg" media="handheld" />
    <!—Всички останали устройства -->
    <source src="video_normal.ogg" media="all" />
 </video>



Тук се проверява дали устройството е мобилно чрез атрибута media. В този случай се възпроизвежда видео в по-малък размер. Ако става дума за друго устройство, се взима стойността all.



Безопасно вграждане на видео

HTML5, както е известно, все още не е поддържан от всички браузъри. Това е валидно и за елемента video. Решение предлага комбинация от различни техники за вграждане. В този случай се комбинират добре познатите елементи object и embed с video. Това може да изглежда по следният начин:

<video width="640" height="360" src="http://www.youtube.com/v/mR5h_EXYKA0?fs" autobuffer controls poster="br.gif">
 <object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="640" height="360" codebase="http://www.apple.com/qtactivex/qtplugin.cab" />
 <param value="http://www.youtube.com/v/mR5h_EXYKA0?fs" />
 <param value="true" />
 <param value="false" />
 <embed src="http://www.youtube.com/v/mR5h_EXYKA0?fs" width="640"height="360" autoplay="true" controller="false" pluginspage="http://www.apple.com/quicktime/download/">
 </embed>
 </object>
 </video>



Вградените по този начин видеа ще могат да се възпроизвеждат в повечето браузъри. Браузърите, които познават елемента video, ще го използват. Другите браузъри обаче ще използват информацията от object или embed елементите.