HTML & CSS voor beginners

HTML & CSS voor beginners (Deel 23): Multimedia voor de website (2)

Alle video's van de tutorial HTML & CSS voor beginners

Audio-bestanden kunnen op dezelfde manier als video's eenvoudig worden ingevoegd in HTML5. HTML5 biedt hiervoor een eigen element met audio.

<audio src="song.mp3">
   Uw browser ondersteunt het audio-element niet.
</audio>

Aan het audio-element wordt met het src-attribuut de naam van het bestand dat moet worden afgespeeld toegekend. Hiermee wordt het bestand echter nog niet afgespeeld. Hiervoor zijn bedieningselementen nodig.

Als u bedieningselementen wilt weergeven, kent u het controls-attribuut toe aan het audio-element.

<audio src="song.mp3" controls>
   Uw browser ondersteunt het audio-element niet.
</audio>



In de browser zou dit er als volgt uit moeten zien:

HTML & CSS voor beginners (deel 23): Multimedia voor de website (2)

Zonder controls is het element ingebed via audio niet zichtbaar. Het weglaten van het attribuut is zinvol als u aangepaste bedieningselementen met JavaScript wilt toevoegen.

De inzet van het audio-element is helaas ook niet probleemloos mogelijk. De browsers ondersteunen namelijk verschillende formaten. De volgende tabel geeft u de actuele stand van zaken hierover.

Browser
MP3

OGG

WAV

AU/SND

AIF

Firefox

nee

ja

ja

nee

nee

Safari

ja

nee

ja

ja

ja

Chrome

ja

ja

nee

nee

nee

Opera

nee

ja

ja

ja

nee



Dus wat te doen? Het audio-element biedt ook de mogelijkheid om extra source-elementen te definiëren. Aan deze elementen kent u vervolgens de verschillende formaten toe voor de verschillende browsers. Een voorbeeld:

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



Aan de src-attributen worden de respectievelijke bestanden toegewezen die vervolgens in de verschillende formaten beschikbaar zijn.

Naast controls zijn er voor het audio-element nog andere attributen beschikbaar. Een daarvan is autoplay.

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



Als het attribuut is ingesteld, begint de audioweergave automatisch zodra deze is geladen. Dit attribuut wordt meestal niet ingesteld, omdat bezoekers de beslissing wanneer een audiobestand wordt afgespeeld zelf moeten laten.

Ook interessant is het loop-attribuut. Dit attribuut zorgt ervoor dat het bestand in een lus wordt afgespeeld.

Net zoals bij het invoegen van video's zijn er ook voor audio-bestanden de twee attributen type en media. U kunt hier dus ook de overeenkomstige MIME-types en codecs aangeven. In de HTML5-specificatie worden de volgende typische vermeldingen voor het type-attribuut vermeld:

type='audio/ogg; codecs=vorbis'

type='audio/ogg; codecs=speex'

type='audio/ogg; codecs=flac'

Merk op dat de twee attributen uitsluitend mogen worden gebruikt bij het source-element, niet bij het audio-element.

Flash & Co. invoegen

Flash-films konden in eerdere HTML-versies worden ingevoegd via een combinatie van embed en object. De resulterende - overigens zeer onaantrekkelijke - syntaxis zag er dan bijvoorbeeld als volgt uit:

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

Dit is de klassieke methode via de object- en embed-elementen, die al heel lang in HTML bestaat.

HTML & CSS voor beginners (Deel 23): Multimedia voor de website (2)



Maar "klassiek" betekent hier niet dat deze variant in het verleden werd goedgekeurd door het W3C. In HTML 4 werd het object-element aangemoedigd, omdat dit correct werd geïnterpreteerd door Internet Explorer. Dit gold niet voor Netscape Navigator, die het embed-element gebruikte. Deze verschillende interpretatie maakte de combinatie van object- en embed-element noodzakelijk.

HTML5 biedt nu de officiële elementen object en embed voor het invoegen van actieve inhoud.

embed is een container bedoeld voor het weergeven van niet-HTML-inhoud die niet wordt gedekt door andere elementen zoals img, video, audio, enz. Om de ingesloten inhoud weer te geven, zijn normaal gesproken browser-plug-ins nodig.

Met embed kunnen bijvoorbeeld Flash-films op een standaardconforme manier worden ingesloten. Hier is een voorbeeld van hoe zoiets eruit kan zien:

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



Verschillende attributen kunnen worden toegewezen aan het embed-element. Het belangrijkste attribuut is natuurlijk weer het src-attribuut. Dit dient namelijk om het bestand dat moet worden ingesloten uiteindelijk aan te geven. Met het type-attribuut wordt het MIME-type opgegeven.

In het geval van Flash is dit application/x-shockwave-flash. Als je daarentegen een LaTeX-bestand wilt insluiten, noteer je application/x-latex. De breedte en hoogte van het ingesloten bestand worden geregeld via width en height.

HTML & CSS voor beginners (Deel 23): Multimedia voor de website (2)

Er zijn overigens nog andere attributen, die echter niet officieel tot HTML5 behoren. Ze stellen echter wel de controle van de gebruikte plug-in mogelijk. Zo werd in het vorige voorbeeld met de twee "Flash-attributen" allowscriptaccess en allowfullscreen bepaald dat scripttoegang en schermvullende modus mogelijk zijn. Er is echter ook het quality-attribuut, waarmee de kwaliteit van de Flash-film kan worden bepaald.

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

Het object-element

Het object-element fungeert net als embed als container voor inhoud. In tegenstelling tot embed kent object echter drie verschillende inhoudsmodellen. Herkent de browser dat het om een rechtstreekse afbeelding gaat, dan gedraagt hij zich alsof het om een img-element gaat. Als het object waarnaar wordt verwezen webinhoud bevat, wordt dit binnen een iFrame getoond. (Meer over iFrames komt trouwens verderop in deze serie). Bij andere inhoud gedraagt object zich zoals embed.

Het volgende voorbeeld toont het insluiten van een Flash-film via het object-element.

<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>
       In uw browser is geen Flash-plug-in aanwezig.
    </p>
 </object>

Uiteraard is de vraag of men nu object of embed moet gebruiken. Op het eerste gezicht lijken de twee elementen bijna identiek te zijn. En inderdaad kan het object-element alles wat het embed-element ook kan.

HTML & CSS voor beginners (Deel 23): Multimedia voor de website (2)



Voor het insluiten van inhoud - behalve afbeeldingen - moet doorgaans teruggegrepen worden naar het object-element. Dit element maakt het namelijk mogelijk alternatieve inhouden aan te geven die worden weergegeven wanneer het ingesloten element niet kan worden geladen.