HTML & CSS için yeni başlayanlar için

HTML & CSS başlangıç ​​için (Bölüm 22): Web sitesi için multimedya (1)

Eğitimdeki tüm videolar HTML ve CSS için başlangıç kılavuzu

Hepimizin kısa bir anıya dalabilmesi için, klasik olarak bir web sitesine video nasıl entegre edilir örneği:

<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>

Bu tür bir sözdizimi elbette ki pek hoş değildir.

HTML ve CSS'ye Giriş (Bölüm 22): Web sitesi için multimedya (1)

Ancak estetik görüşü bir kenara bıraktığımızda dahi, bu sözdizimi şekli hata yapmaya çok meyillidir ve oldukça karmaşıktır. HTML5'te videoları daha kolay entegre etmek mümkündür. Bunun için video öğesi kullanılır.

İşte bu video öğesinin nasıl entegre edileceğine dair bir örnek:

<video src="video.ogv" width="300" height="200">
   Maalesef tarayıcınız HTML5 uyumlu değil
</video>



Bu, en basit formdaki yöntemdir. Ancak bu sözdizimi şeklindeki üç nitelik önemlidir. src ile entegre edilecek video belirtilir. Burada doğru yol belirlemeye dikkat edin. width ve height nitelikleri video genişliğini ve yüksekliğini belirler. İkisinden biri belirtilmezse, video orijinal boyutunda gösterilir. Yalnızca bir tanesi belirtilirse, tarayıcı diğer değeri otomatik olarak hesaplar. autoplay niteliği, tarayıcıya sayfa yüklendiğinde videoyu otomatik olarak başlatmasını söyler. Bu nitelik genellikle belirtilmemelidir, çünkü kullanıcıların genellikle otomatik oynatım istemediği kabul edilir. Bu durum daha çok düşük bant genişliğine sahip mobil cihazlar kullanan kullanıcılar için geçerlidir.

Bir diğer ilginç nitelik controls'dür. Bu kullanıldığında, tarayıcıda oynatma ve ses kontrolü için yerel kontroller gösterilir.

<video src="video.ogv" width="300" height="200" controls>
   Maalesef tarayıcınız HTML5 uyumlu değil
</video>

Tarayıcıdaki sonuç:

HTML ve CSS başlangıç için (Bölüm 22): Web sitesi için multimedya (1)

Görüntülenen çubuk aracılığıyla videoyu sadece durdurup yeniden başlatmakla kalmaz, aynı zamanda ses düzenini de içerir.

HTML & CSS'e Giriş (Bölüm 22): Web sitesi için multimedya (1)

poster niteliği ile video başlayana kadar gösterilecek bir resim belirtebilirsiniz. Bunun için poster niteliği kullanılır.

<video src="video.ogv" width="300" height="200" poster="video.gif">
   Maalesef tarayıcınız HTML5 uyumlu değil
</video>



Burada da resmin gerçekten görüntülenebilmesi için doğru yol belirlemeye dikkat edin.

HTML & CSS'e yeni başlayanlar için (Bölüm 22): Web sitesi için multimedya (1)

autoplay niteliğinin kullanımında dikkatli olunmalıdır. Çünkü bu nitelik, videoyun mevcut olduğu anda otomatik olarak oynatılmasını belirler.

<video src="video.ogv" width="300" height="200" autoplay>
   Maalesef tarayıcınız HTML5 uyumlu değil
</video>



Trafik açısından preload niteliği ilgi çekici olabilir. Bu nitelik, ön yükleme davranışını kontrol eder. Bu niteliğin alabileceği değerler şunlardır:

auto - Tarayıcı tüm dosyayı ön yükleyebilir.

none - Dosya ön yüklenmesi gerekli değil.

metadata - Dosya ön yüklenebilir.

preload niteliği eksik olduğunda, tarayıcıların varsayılan ayarları devreye girer.

Videolar ve Codec'ler

Web sitelerine video entegre etme ve oynatma konusunda ilgilenenler, farklı codec'lerle ilgili sorunla er ya da geç karşılaşacaktır. Bu codec'ler sayesinde videolar etkili bir şekilde sıkıştırılıp açılabilir. Buradaki sorun şudur: Tarayıcı üreticileri bugüne kadar ortak bir codec formatında anlaşamadılar. HTML5 (ve sonuç olarak sizin için) için bu, videolar ve ses dosyaları için tek tip codec'ler olmadığı anlamına gelir.

Videolar için Ogg ve MP4 formatları artık standart hale gelmiştir. Dolayısıyla bu iki formatta video sunulduğunda genellikle güvende olunur. Bunun için video öğesine iki source öğesi atandığını söyleyerek yapılır.

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



Yani, video kaynağını video elemanı içinde belirtmiyorsunuz. Bunun yerine, sadece gösterimle ilgili genel bilgileri belirtiyorsunuz. Hangi videoyu göstermek istediğinizi source elemanıyla belirlersiniz. src özniteliğine ilgili videoyu atarsınız. type kısmından da video türünü veya videosunun hangi formatta olduğunu belirtirsiniz.

Birden fazla source elemanı belirtilmişse, tarayıcı her zaman "uygun" olan ilk videoyu oynatır. Bu "uygun" kavramının ne olduğu aşağıda açıklanmaktadır.

Peki aslında hangi tarayıcı hangi formata hakim? Bu sorunun cevabını aşağıdaki tablo sağlamaktadır.

TarayıcıOgg Theora (.ogg)h.264 (.mp4)
Internet ExplorerSürüm 9'dan itibaren
Mozilla FirefoxEvet
Google ChromeEvetEvet
OperaEvet
SafariEvet
iPhoneEvet
AndroidEvet



Tablo, durumu açıkça gösteriyor: Biçimlerin yorumlanması hemen hemen tüm tarayıcılara eşit şekilde yayılmış durumda. Bu nedenle, genellikle videoları her iki formatta da belirtmek zorunda kalırsınız.

media özniteliği, yalnızca source elemanına atanabilen; video için hangi medya türünün uygun olduğunu açıkça belirtmemizi sağlar. Belirli cihazlar için videoları belirtmek için, src elemanına media özniteliği atanmalıdır. Bu media özniteliğiyle istediğimiz medya türünü belirtiriz.

Bir source elemanının olası bir kullanımı şöyle olabilir:

<video width="400" height="300">
    <!-- Sadece mobil cihazlar için -->
    <source src="video_mobil.ogg" media="handheld" />
    <!-- Diğer tüm cihazlar için -->
    <source src="video_normal.ogg" media="all" />
 </video>



Bu şekilde, media özniteliğine bakılarak mobil bir cihaz olup olmadığı kontrol edilir. Bu durumda, daha küçük boyutta bir video oynatılır. Farklı bir cihazsa, tüm değeri geçerlidir.



Videoları Güvenli Bir Şekilde Entegre Etme

HTML5'in, bilindiği gibi hala tüm tarayıcılarca desteklenmediği bilinmektedir. Bu durum tabii ki video elemanı için de geçerlidir. Bir çözüm, farklı entegrasyon tekniklerinin bir araya getirilmesidir. Bunun için eski tanıdık object ve embed elemanları video ile birleştirilir. Bunun bir örneği aşağıdaki gibi görünebilir:

<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>



Bu şekilde entegre edilen videolar, çoğu tarayıcıda oynatılabilir durumda olacaktır. video elemanını tanıyan tarayıcılar buna başvururken, diğer tarayıcılar object veya embed elemanlarındaki bilgileri kullanacaktır.