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

HTML ve CSS'ye Giriş (Bölüm 23): Web Sitesi için Multimedya (2)

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

Audio dosyalarını HTML5'te video dosyalarıyla benzer şekilde kolayca entegre edebilirsiniz. HTML5, bu amaçla

<audio src="song.mp3">
   Tarayıcınız audio öğesini desteklemiyor.
</audio>

audio öğesine çalınacak dosyanın adı src özniteliği üzerinden atanır. Ancak dosya henüz çalınmaz. Bunun için kontrol öğelerine ihtiyaç vardır.

Kontrol öğelerini göstermek istiyorsanız, audio öğesine controls özniteliğini tanımlarsınız.

<audio src="song.mp3" controls>
   Tarayıcınız audio öğesini desteklemiyor.
</audio>



Tarayıcıda şu şekilde görünecektir:

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

controls yoksa, audio öğesi görünmez. Bu özniteliği kullanmak mantıklıdır çünkü JavaScript ile kendi kontrol öğelerini eklemek istiyorsanız.

Ne yazık ki audio öğesinin kullanımı sorunsuz değildir. Bu sorunun sebebi yine tarayıcılardır, her biri farklı formatları destekler. Aşağıdaki tablo size bu konuda özgü güncel bilgiler sunacaktır.

Tarayıcı
MP3

OGG

WAV

AU/SND

AIF

Firefox

hayır

evet

evet

hayır

hayır

Safari

evet

hayır

evet

evet

evet

Chrome

evet

evet

hayır

hayır

hayır

Opera

hayır

evet

evet

evet

hayır



Peki, ne yapmalı? audio öğesi size farklı formatlarda dosyalar sunma imkanı sağlar. Bu dosyalara tarayıcılara uygun formatlar atamak için source öğeleri tanımlarsınız. Bir örnek:

<audio controls>  
    <source src="song.mp3">  
    <source src="song.ogg">  
</audio>



src özniteliklerine farklı formatlardaki dosyalar atanır ve tarayıcılara uygun formatta sunulur.

controls öğesinin yanı sıra audio öğesi için başka öznitelikler de bulunmaktadır. Bunlardan biri autoplay'dur.

<audio controls autoplay>  
    <source src="song.mp3">  
    <source src="song.ogg">  
</audio>



Öznitelik ayarlanırsa, ses dosyası otomatik olarak yüklendikten sonra çalmaya başlar. Normalde bu özniteliği kullanmazsınız, çünkü ziyaretçilere ses dosyasını ne zaman çalmak istediklerine karar vermeyi bırakmalısınız.

Ayrıca dikkat çeken bir özellik de loop özniteliğidir. Bu öznitelik dosyanın döngü içinde çalınmasını sağlar.

Videoları eklerken olduğu gibi, ses dosyaları için de type ve media gibi iki ek öznitelik bulunmaktadır. Burada da ilgili MIME türlerini ve codec'leri belirtebilirsiniz. HTML5 spesifikasyonunda type özniteliği için aşağıdaki typik değerler bulunmaktadır:

type='audio/ogg; codecs=vorbis'

type='audio/ogg; codecs=speex'

type='audio/ogg; codecs=flac'

source öğesinde olmak üzere, sadece audio öğesinde değil type ve media özniteliklerini kullanabilirsiniz.

Flash & Co. entegre etme

Flash filmleri eski HTML sürümlerinde embed ve object kombinasyonuyla entegre edilebiliyordu. Bu şekilde oluşturulan – üstelik oldukça çirkin – sözdizimi şöyle görünüyordu:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="800" height="600">
  <param name=movie value="intro.swf">
 <param name=quality value=high>
 <embed src="intro.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="800" height="600"> </embed>
 </object>

Bu, HTML'ye uzun süredir var olan object ve embed öğeleri üzerinden yapılan klasik entegrasyon yöntemidir.

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



Ancak "klasik" burada geçmişte W3C tarafından onaylanmış anlamına gelmez. Çünkü HTML 4'te Internet Explorer tarafından doğru şekilde yorumlanan object öğesi favori olarak belirlendi. Farklı olarak Netscape Navigator, embed öğesini kullandı. Bu farklı yorumlama, object ve embed elemanlarının kombinasyonunu gerektirdi.

HTML5, aktif içerikleri entegre etmek için resmi olarak object ve embed öğelerini sunar.

embed, Normalde tarayıcı eklentileri gerektiren, HTML dışı içeriklerin görüntülenmesi için oluşturulan bir konteynerdir ve img, video, audio gibi diğer elemanlar tarafından kapsanmayan içerikler içindir. Entegre içeriğin görüntülenmesi için genellikle tarayıcı eklentilerine ihtiyaç duyulur.

Örneğin embed aracılığıyla Flash filmleri artık standarta uygun bir şekilde entegre edilebilir. İşte böyle bir şeyin nasıl görünebileceğine dair bir örnek:

<embed
    src="http://www.youtube.com/v/v1PgiBpTtao?fs=1&hl=de_DE"
    type="application/x-shockwave-flash"
    width="384"
    height="313"
    allowscriptaccess="always"
    allowfullscreen="true"
  />



embed öğesine çeşitli özellikler atanabilir. En önemli olanı tabii ki yine src özelliğidir. Çünkü nihayetinde entegre edilecek dosyayı belirler. type özelliği üzerinden MIME türü belirtilir.

Flash için bu değer application/x-shockwave-flash'tır. Öte yandan bir LaTeX dosyası entegre etmek isterseniz, application/x-latex yazarsınız. Entegre edilen dosyanın genişliği ve yüksekliği width ve height ile ayarlanır.

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

Ayrıca HTML5'e resmi olarak dahil olmayan daha fazla özellik bulunmaktadır. Bunlar, kullanılan eklentiyi kontrol etmeyi sağlar. Örneğin önceki örnekte "Flash-Özellikleri" allowscriptaccess ve allowfullscreen ile kullanılabilir olduğu belirlenmiştir. Aynı şekilde quality özelliği ile Flash filmi kalitesi belirlenebilir.

<embed 
    src="flash.swf" 
    width="600" height="300" 
    type="application/x-shockwave-flash" 
    quality="high" 
 />

object Öğesi

object öğesi embed gibi içeriği barındıran bir kap durumundadır. Ancak embed'in aksine, object üç farklı içerik modelini tanır. Tarayıcı, doğrudan görüntülenebilir bir grafik olduğunu algılarsa, o zaman bir img öğesiymiş gibi davranır. Referans alınan nesnenin bir web içeriği olduğunu fark ederse, içeriği bir iFrame içinde gösterir. (Bu konuyla ilgili daha fazla bilgi sırasıyla bu serinin devamında gelecektir). Diğer içeriklerde ise object, embed gibi davranır.

Aşağıdaki örnek, object öğesi üzerinden bir Flash filmi entegre etmeyi göstermektedir.

<object
    type="application/x-shockwave-flash"
    data="http://www.youtube.com/v/BzYBY_9rnuA?version=3&hl=de_DE&rel=0"
    width="400"
    height="300">
    <param name="allowscriptaccess" value="always" />
    <param name="allowfullscreen" value="true" />
    <p>
       Tarayıcınızda Flash eklentisi bulunmamaktadır.
    </p>
 </object>

Son olarak, şüphesiz object mu yoksa embed mi kullanılması gerektiği sorusu ortaya çıkar. İlk bakışta, bu iki öğe neredeyse aynı gibi görünmektedir. Gerçekte, object öğesi embed öğesinin yapabildiği her şeyi yapabilir.

HTML ve CSS için Başlangıç ​​(Bölüm 23): Web sitesi için çoklu ortam (2)



İçerikleri entegre etmek için - resimler hariç - genellikle object öğesine başvurulmalıdır. Bu öğe, entegre edilen öğe yüklenemediğinde gösterilecek alternatif içerikleri belirtmeyi sağlar.