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 – Το αρχείο μπορεί να προφορτωθεί.

Αν απουσιάζει το γνώρισμα preload, οι προεπιλεγμένες ρυθμίσεις των περιηγητών εφαρμόζονται.

Βίντεο και Codecs

Όποιος ασχολείται με την ενσωμάτωση και την αναπαραγωγή βίντεο σε ιστοσελίδες, θα αντιμετωπίσει νωρίτερα ή αργότερα το πρόβλημα με τα διάφορα codecs. Χάρη σε αυτά τα codecs, τα βίντεο συμπιέζονται και αποσυμπιέζονται αποδοτικά. Το πρόβλημα είναι ότι μέχρι σήμερα, οι κατασκευαστές περιηγητών δεν κατάφεραν να συμφωνήσουν σε ένα κοινό μορφότυπο codec. Για το HTML5 (και έτσι, τελικά και για εσάς) αυτό σημαίνει ότι δεν υπάρχουν ομοιόμορφοι codecs για βίντεο και αρχεία ήχου.

Για τα βίντεο, τα δύο μορφότυπα Ogg και MP4 έχουν καθιερωθεί. Γι' αυτό είστε πάντα στο σωστό δρόμο αν προσφέρετε το βίντεο σε αυτά τα δύο μορφότυπα. Για να το κάνετε αυτό, αναθέτετε δύο στοιχεία source στο στοιχείο video.

<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, μπορεί κανείς μάλιστα να καθορίσει ρητά για ποιον τύπο μέσου είναι κατάλληλο το βίντεο. Για να καθοριστούν βίντεο ειδικά για συγκεκριμένες συσκευές, το γνώρισμα media πρέπει να ανατεθεί στο src. Μέσω αυτού του γνωρίσματος media αναφέρετε τον επιθυμητό τύπο μέσου.

Μια πιθανή εφαρμογή για το στοιχείο source θα μπορούσε να είναι η εξής:

<video width="400" height="300">
    <!-- Μόνο για φορητές συσκευές -->
    <source src="video_mobil.ogg" media="handheld" />
    <!—Όλες οι άλλες συσκευές -->
    <source src="video_normal.ogg" media="all" />
 </video>



Εδώ ελέγχεται μέσω του γνωρίσματος media αν πρόκειται για μια φορητή συσκευή. Σε αυτή την περίπτωση, αναπαράγεται ένα βίντεο μικρότερου μεγέθους. Αν πρόκειται για μια άλλη συσκευή, χρησιμοποιείται η τιμή "όόλα".



Ασφάλς ενσωμάτωση βίντεο

Όπως είναι γνωστό, το 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.