Δημιουργήστε ένα προσαρμοσμένο πρόγραμμα αναπαραγωγής βίντεο HTML5

  • Απαιτείται γνώση: Ενδιάμεσο HTML, ενδιάμεσο JavaScript, ενδιάμεσο CSS
  • Απαιτεί : Πρόγραμμα επεξεργασίας κειμένου, πρόγραμμα περιήγησης με δυνατότητα HTML5
  • Ώρα έργου : 2-3 ώρες

Κατεβάστε τα αρχεία προέλευσης για αυτό το σεμινάριο HTML5

Είναι κοινή γνώση ότι με Ιστότοποι HTML5 Μπορείτε να αναπαράγετε αρχεία ήχου και βίντεο απευθείας στο πρόγραμμα περιήγησης χωρίς την ανάγκη προσθηκών τρίτων, μέσω των στοιχείων και. Όμως, δεδομένου ότι η προδιαγραφή δεν καθορίζει τον τρόπο εμφάνισης των στοιχείων ελέγχου για αρχεία ήχου και βίντεο, κάθε προμηθευτής προγράμματος περιήγησης έχει σχεδιάσει τη δική του διεπαφή για το πρόγραμμα αναπαραγωγής του, το οποίο φυσικά προσφέρει μια διαφορετική εμπειρία χρήστη για κάθε πρόγραμμα περιήγησης.

Αλλά αν θέλετε να παρέχετε μια συνεπή διεπαφή στα αρχεία πολυμέσων σας, μπορείτε να δημιουργήσετε το δικό σας πρόγραμμα αναπαραγωγής, μέσω ενός συνδυασμού HTML, CSS και HTML5 API API. Εάν δεν είστε εξοικειωμένοι με το API, έχω συμπεριλάβει μια εισαγωγή σε ορισμένες από τις σχετικές λειτουργίες στη συνοδευτική λήψη για αυτό το σεμινάριο.



Δημιουργία του προγράμματος αναπαραγωγής πολυμέσων

Αρχικά, το μόνο που χρειάζεστε είναι ο αγαπημένος σας επεξεργαστής HTML (χρησιμοποιώ Σημειωματάριο ++ ). Αν το θέλατε, θα μπορούσατε να καθίσετε και να σχεδιάσετε τον παίκτη εκ των προτέρων - αλλά επειδή δεν είμαι σχεδιαστής, δεν θα το κάνω αυτό.

Το προσαρμοσμένο πρόγραμμα αναπαραγωγής πολυμέσων μας θα συμμορφώνεται με τις συμβάσεις διεπαφής. Το κουμπί αναπαραγωγής (αριστερά) αλλάζει σε κουμπί παύσης (δεξιά) κατά την αναπαραγωγή του μέσου

Το προσαρμοσμένο πρόγραμμα αναπαραγωγής πολυμέσων μας θα συμμορφώνεται με τις συμβάσεις διεπαφής. Το κουμπί αναπαραγωγής (αριστερά) αλλάζει σε κουμπί παύσης (δεξιά) κατά την αναπαραγωγή του μέσου

Πρώτα απ 'όλα, χρειαζόμαστε ένα απλό πρότυπο σελίδας HTML για να περιέχει το πρόγραμμα αναπαραγωγής μας:

Sample HTML5 Media Player

Όπως μπορείτε να δείτε, συμπεριλαμβάνουμε ένα αρχείο CSS, το οποίο θα περιέχει το στυλ για το πρόγραμμα αναπαραγωγής πολυμέσων και ένα αρχείο JavaScript, το οποίο θα περιλαμβάνει τον κώδικα που ελέγχει τη συσκευή αναπαραγωγής. Δεν θα πάω στο CSS για τον παίκτη σε αυτό το άρθρο.

Υπάρχει επίσης ένα στοιχείο βίντεο, που ορίζεται μέσω δύο αρχικών στοιχείων προέλευσης: το δοκιμαστικό βίντεο είναι σε μορφές MP4 και WebM. Παρατηρήστε ότι έχουμε ορίσει το χαρακτηριστικό ελέγχου για το στοιχείο βίντεο, παρόλο που θέλουμε να ορίσουμε το δικό μας σύνολο ελέγχου. Είναι καλύτερα να απενεργοποιήσετε τα στοιχεία ελέγχου μέσω JavaScript σε περίπτωση που ο χρήστης έχει απενεργοποιήσει τη JavaScript. Το div με το αναγνωριστικό 'media-control' θα περιέχει ακριβώς αυτό που λέει. Αλλά πρώτα απ 'όλα πρέπει να προετοιμάσουμε το πρόγραμμα αναπαραγωγής μας, το οποίο κάνουμε μέσω JavaScript.

Τα προεπιλεγμένα στοιχεία ελέγχου βίντεο διαφέρουν από πρόγραμμα περιήγησης σε πρόγραμμα περιήγησης. Από αριστερά προς τα δεξιά και από πάνω προς τα κάτω: Firefox, Chrome, Opera, Safari, IE9, IE10

Τα προεπιλεγμένα στοιχεία ελέγχου βίντεο διαφέρουν από πρόγραμμα περιήγησης σε πρόγραμμα περιήγησης. Από αριστερά προς τα δεξιά και από πάνω προς τα κάτω: Firefox, Chrome, Opera, Safari, IE9, IE10

Αρχικοποίηση

Μεταβαίνοντας στο αρχείο JavaScript, θα ορίσουμε μια συνάρτηση που ονομάζεται initialiseMediaPlayer () την οποία πρέπει να καλέσουμε όταν φορτωθεί το έγγραφο. Για να το κάνουμε αυτό, προσθέτουμε ένα πρόγραμμα ακρόασης για το συμβάν DOMContentLoaded:

document.addEventListener('DOMContentLoaded', function() { initialiseMediaPlayer(); }, false);

Επιπλέον, ορίζουμε μια καθολική μεταβλητή για την αποθήκευση μιας λαβής στο πρόγραμμα αναπαραγωγής πολυμέσων:

var mediaPlayer;

Η συνάρτηση initialiseMediaPlayer () θα αποκτήσει απλώς μια λαβή στο πρόγραμμα αναπαραγωγής πολυμέσων και, στη συνέχεια, θα αποκρύψει τα στοιχεία ελέγχου όπως αναφέρθηκε προηγουμένως:

function initialiseMediaPlayer() { mediaPlayer = document.getElementById('media-video'); mediaPlayer.controls = false; }

Όπως μπορείτε να δείτε, χρησιμοποιούμε το χαρακτηριστικό ελέγχου Boolean από το API πολυμέσων για να αποκρύψουμε το προεπιλεγμένο σύνολο ελέγχου αναπαραγωγής πολυμέσων του προγράμματος περιήγησης.

Προσθήκη των κουμπιών

Τώρα θα αρχίσουμε να προσθέτουμε κουμπιά: το πιο σημαντικό, το κουμπί αναπαραγωγής. Δεδομένου ότι πολλές συσκευές αναπαραγωγής πολυμέσων χρησιμοποιούν ένα κουμπί για εναλλαγή μεταξύ λειτουργιών αναπαραγωγής και παύσης, θα κάνουμε το ίδιο. Για να ορίσετε το κουμπί, προσθέστε αυτόν τον κωδικό:

Play

Αυτό καθορίζει ένα κουμπί αναπαραγωγής / παύσης με τα κατάλληλα χαρακτηριστικά. Όταν πατηθεί, θα κληθεί μια συνάρτηση JavaScript που ονομάζεται togglePlayPause (). Η κλάση παιχνιδιού CSS ορίζει το κουμπί ως κουμπί αναπαραγωγής με την κατάλληλη εικόνα.

Φυσικά, αυτό το κουμπί δεν θα κάνει πολλά έως ότου γράψουμε τη λειτουργία togglePlayPause () για εναλλαγή του κουμπιού μεταξύ των λειτουργιών αναπαραγωγής και παύσης. Η ίδια η λειτουργία είναι αρκετά απλή, οπότε θα βουτήξουμε κατευθείαν και θα την ρίξουμε μια πιο προσεκτική ματιά:

function togglePlayPause() { var btn = document.getElementById('play-pause-button'); if (mediaPlayer.paused || mediaPlayer.ended) { btn.title = 'pause'; btn.innerHTML = 'pause'; btn.className = 'pause'; mediaPlayer.play(); } else { btn.title = 'play'; btn.innerHTML = 'play'; btn.className = 'play'; mediaPlayer.pause(); } }

Αρχικά, λαμβάνουμε μια λαβή στο κουμπί αναπαραγωγής / παύσης για χρήση σε όλη τη λειτουργία. Στη συνέχεια, ελέγχουμε τα χαρακτηριστικά παύσης και τερματισμού της συσκευής αναπαραγωγής πολυμέσων για να δούμε αν το μέσο έχει τεθεί σε παύση ή έχει λήξει. Εάν ναι, πρέπει να παίξουμε τα μέσα και να εμφανίσουμε το κουμπί ως κουμπί παύσης, οπότε αλλάζουμε τον τίτλο, το κείμενο HTML και το όνομα τάξης και, στη συνέχεια, καλούμε τη μέθοδο αναπαραγωγής () στη συσκευή αναπαραγωγής πολυμέσων.

Το κουμπί διακοπής κάνει παύση του μέσου και στηρίζεται στην αρχική του θέση

Το κουμπί διακοπής κάνει παύση του μέσου και στηρίζεται στην αρχική του θέση

Εάν το πρόγραμμα αναπαραγωγής πολυμέσων δεν έχει τεθεί σε παύση ή τερματιστεί, μπορούμε να υποθέσουμε ότι το μέσο αναπαραγωγής παίζει, οπότε πρέπει να το θέσουμε σε παύση και, στη συνέχεια, να ρυθμίσουμε το κουμπί ως κουμπί αναπαραγωγής. Αυτή τη φορά, καλούμε τη μέθοδο παύσης () για παύση του ίδιου του μέσου.

Δεδομένου ότι θα θέλουμε να αλλάξουμε τις τιμές τίτλου, innerHTML και className διαφόρων κουμπιών σε ολόκληρο τον κώδικα, είναι λογικό να ορίσουμε μια συνάρτηση που το κάνει αυτό για εμάς: ChangeButtonType (). Θα το χρησιμοποιήσουμε από τώρα και στο εξής:

function changeButtonType(btn, value) { btn.title = value; btn.innerHTML = value; btn.className = value; }

Ένα άλλο χρήσιμο χαρακτηριστικό είναι ένα κουμπί διακοπής:

Stop

Το API πολυμέσων δεν παρέχει μια συγκεκριμένη μέθοδο διακοπής, επειδή δεν υπάρχει πραγματική διαφορά μεταξύ παύσης και διακοπής ενός βίντεο ή αρχείου ήχου. Αντ 'αυτού, η λειτουργία stopPlayer () απλώς θα θέσει σε παύση το μέσο και θα επαναφέρει επίσης το χαρακτηριστικό currentTime στο 0, το οποίο μετακινεί αποτελεσματικά το μέσο πίσω στην αρχική θέση:

καλύτεροι καλλιτέχνες manga όλων των εποχών
function stopPlayer() { mediaPlayer.pause(); mediaPlayer.currentTime = 0; }

Στη συνέχεια, θα προσθέσουμε ξεχωριστά κουμπιά για αύξηση και μείωση του όγκου:

Increase volume Decrease volume

Όταν κάνετε κλικ σε κάθε κουμπί, καλούμε τη συνάρτηση changeVolume () με μια παράμετρο που δείχνει την κατεύθυνση (χρησιμοποιούμε ένα σύμβολο συν και πλην εδώ):

function changeVolume(direction) { if (direction === '+') mediaPlayer.volume += mediaPlayer.volume == 1 ? 0 : 0.1; else mediaPlayer.volume -= (mediaPlayer.volume == 0 ? 0 : 0.1); mediaPlayer.volume = parseFloat(mediaPlayer.volume).toFixed(1); }

Αυτή η συνάρτηση ελέγχει την παράμετρο και τροποποιεί την τιμή του χαρακτηριστικού έντασης της συσκευής αναπαραγωγής πολυμέσων. Το χαρακτηριστικό έχει εύρος μεταξύ 0 και 1, οπότε οι αυξήσεις ή οι μειώσεις γίνονται στα βήματα του 0,1, ελέγχοντας την τήρηση των ελάχιστων και των μέγιστων τιμών. Χρησιμοποιούμε parseFloat () και toFixed () για να ορίσουμε την τιμή σε ένα δεκαδικό ψηφίο.

Τα κουμπιά + και - εμφανίζονται πάνω από τον έλεγχο της έντασης αναπαραγωγής

Τα κουμπιά + και - εμφανίζονται πάνω από τον έλεγχο της έντασης αναπαραγωγής

Επιπλέον, πρέπει να προσθέσουμε ένα κουμπί σίγασης:

Mute

Και επίσης μια λειτουργία toggleMute ():

function toggleMute() { var btn = document.getElementById('mute-button'); if (mediaPlayer.muted) { changeButtonType(btn, 'mute'); mediaPlayer.muted = false; } else { changeButtonType(btn, 'unmute'); mediaPlayer.muted = true; } }

Αυτή η συνάρτηση είναι παρόμοια με το togglePlayPause () καθώς ελέγχουμε ένα από τα χαρακτηριστικά της συσκευής αναπαραγωγής πολυμέσων, σε αυτήν την περίπτωση σε σίγαση. Εάν έχει ρυθμιστεί, το κουμπί πρέπει να γίνει κουμπί σίγασης και το πρόγραμμα αναπαραγωγής πολυμέσων να μην ενεργοποιηθεί. Εάν όχι, το κουμπί πρέπει να γίνει κουμπί σίγασης και το πρόγραμμα αναπαραγωγής πολυμέσων σε σίγαση.

Τέλος, θα προσθέσουμε ένα κουμπί επανάληψης για την αναπαραγωγή του αρχείου πολυμέσων που φορτώνεται αυτήν τη στιγμή. Θα κάνουμε αυτό το κουμπί το πρώτο στο σύνολο ελέγχου:

ο καλύτερος υπολογιστής για το δημιουργικό cloud του adobe 2017
Replay

Το JavaScript για το replayMedia () είναι αρκετά απλό:

function replayMedia() { resetPlayer(); mediaPlayer.play(); }

Το μόνο που πρέπει να κάνουμε είναι να επαναφέρετε τη συσκευή αναπαραγωγής και στη συνέχεια να καλέσετε τη μέθοδο αναπαραγωγής () στη συσκευή αναπαραγωγής μας. Η μέθοδος resetPlayer () μοιάζει με αυτήν:

function resetPlayer() { mediaPlayer.currentTime = 0; changeButtonType(playPauseBtn, 'play'); }

Αυτή η λειτουργία επαναφέρει τη θέση αναπαραγωγής του μέσου μέσω του χαρακτηριστικού currentTime και διασφαλίζει ότι το κουμπί αναπαραγωγής / παύσης έχει ρυθμιστεί για αναπαραγωγή. Θα προσθέσουμε σε αυτήν τη λειτουργία αργότερα.

Το προσαρμοσμένο πρόγραμμα αναπαραγωγής, πλήρες με γραμμή προόδου και έλεγχο επανάληψης

Το προσαρμοσμένο πρόγραμμα αναπαραγωγής, πλήρες με γραμμή προόδου και έλεγχο επανάληψης

Προσθήκη γραμμής προόδου

Οι συσκευές αναπαραγωγής πολυμέσων συνήθως παρέχουν μια γραμμή προόδου που υποδεικνύει πόση αναπαραγωγή του βίντεο. Για αυτό, θα εκμεταλλευτούμε το στοιχείο προόδου HTML5, το οποίο υποστηρίζεται στις τελευταίες εκδόσεις όλων των προγραμμάτων περιήγησης (συμπεριλαμβανομένων των IE10 και Safari 6): είναι ο τέλειος υποψήφιος για την εμφάνιση αυτών των πληροφοριών.

0% played

Για να παρακολουθείτε το βίντεο καθώς παίζει και να ενημερώνει τη γραμμή προόδου, ακούμε για το συμβάν timeupdate, το οποίο αυξάνεται καθώς αναπαράγεται το μέσο. Κάθε φορά που αυξάνεται αυτό το συμβάν, μπορούμε να ενημερώνουμε τη γραμμή προόδου. Έτσι, μέσα στη συνάρτηση initialiseMediaPlayer () πρέπει να περιμένουμε και να δράσουμε σε αυτό το συμβάν:

mediaPlayer.addEventListener('timeupdate', updateProgressBar, false);

Τώρα όταν αυξάνεται το συμβάν timeupdate, θα κληθεί η συνάρτηση updateProgressBar (), την οποία ορίζουμε ως εξής:

function updateProgressBar() { var progressBar = document.getElementById('progress-bar'); var percentage = Math.floor((100 / mediaPlayer.duration) * mediaPlayer.currentTime); progressBar.value = percentage; progressBar.innerHTML = percentage + '% played'; }

Εδώ, παίρνουμε μια λαβή στη γραμμή προόδου, υπολογίζουμε πόσα από τα πολυμέσα έχουν παίξει χρησιμοποιώντας τα χαρακτηριστικά διάρκειας και currentTime και ορίζουμε την τιμή της γραμμής προόδου σε αυτό το ποσό. Ενημερώνουμε επίσης το κείμενο HTML του στοιχείου για προγράμματα περιήγησης που δεν υποστηρίζουν το στοιχείο προόδου.

Πρέπει επίσης να επαναφέρουμε τη γραμμή προόδου στο resetPlayer (), η οποία γίνεται:

function resetPlayer() { progressBar.value = 0; mediaPlayer.currentTime = 0; changeButtonType(playPauseBtn, 'play'); }

Η συσκευή αναπαραγωγής μας εμφανίζει τώρα με επιτυχία την πρόοδο των πολυμέσων καθώς παίζεται.

Περισσότερα για εκδηλώσεις

Παρόλο που έχουμε απενεργοποιήσει το προεπιλεγμένο σύνολο ελέγχου του προγράμματος περιήγησης, είναι ακόμα δυνατό για έναν χρήστη να έχει πρόσβαση στις προεπιλογές: στον Firefox, κάνοντας δεξί κλικ στο πρόγραμμα αναπαραγωγής πολυμέσων, για παράδειγμα. Εάν ένας χρήστης ελέγχει τα μέσα με αυτόν τον τρόπο, ορισμένα από τα στοιχεία ελέγχου εντός του συνόλου ελέγχου μας θα είναι εκτός συγχρονισμού.

Μπορούμε να επιδιορθώσουμε αυτό το μικρό πρόβλημα ακούγοντας τα γεγονότα που δημιουργούνται από το πρόγραμμα περιήγησης όταν ένας χρήστης αλληλεπιδρά με το πρόγραμμα αναπαραγωγής πολυμέσων με αυτόν τον τρόπο και ενεργώντας ανάλογα.

Χρειάζεστε περισσότερες λεπτομέρειες; Δοκιμάστε τον Ian Devlin

Χρειάζεστε περισσότερες λεπτομέρειες; Δοκιμάστε το βιβλίο του Ian Devlin

Για τα κουμπιά αναπαραγωγής και παύσης, το μόνο που πρέπει να κάνουμε είναι να ακούσουμε τα γεγονότα αναπαραγωγής και παύσης και να αλλάξουμε το κείμενο των κουμπιών όπως απαιτείται:

mediaPlayer.addEventListener('play', function() { var btn = document.getElementById('play-pause-button'); changeButtonType(btn, 'pause'); }, false); mediaPlayer.addEventListener('pause', function() { var btn = document.getElementById('play-pause-button'); changeButtonType(btn, play); }, false);

Παρομοίως, για το κουμπί σίγασης, πρέπει να περιμένουμε το συμβάν αλλαγής έντασης - το οποίο αυξάνεται όταν αλλάζει είτε η σίγαση του παίκτη είτε οι τιμές έντασης - και ενημερώστε το κείμενο του κουμπιού σίγασης:

mediaPlayer.addEventListener('volumechange', function(e) { var btn = document.getElementById('mute-button'); if (mediaPlayer.muted) changeButtonType(btn, 'unmute'); else changeButtonType(btn, 'mute'); }, false);

Τώρα τα προσαρμοσμένα στοιχεία ελέγχου μας θα παραμείνουν συγχρονισμένα εάν ένας χρήστης επιλέξει να χρησιμοποιήσει το προεπιλεγμένο σύνολο ελέγχου του προγράμματος περιήγησης και όχι τα υπέροχα προσαρμοσμένα.

Εφαρμογή λίστας αναπαραγωγής

Για να ολοκληρώσουμε το πρόγραμμα αναπαραγωγής πολυμέσων, θα προσθέσουμε μια λίστα αναπαραγωγής. Για να ξεκινήσουμε, χρειαζόμαστε μια πραγματική λίστα στοιχείων που θέλουμε να προσθέσουμε στη λίστα αναπαραγωγής μας:

Play list

  • Parrots
  • Paddle Steamer Wheel
  • Grass

Όπως και με τα αρχικά στοιχεία βίντεο, παρέχουμε τα αρχεία βίντεο σε μορφή MP4 και WebM. Όταν ένας χρήστης κάνει κλικ σε ένα στοιχείο, αυτά μεταφέρονται σε μια συνάρτηση loadVideo (), την οποία φυσικά πρέπει να ορίσουμε:

function loadVideo() { for (var i = 0; i < arguments.length; i++) { var file = arguments[i].split('.'); var ext = file[file.length - 1]; if (canPlayVideo(ext)) { resetMediaPlayer(); mediaPlayer.src = arguments[i]; mediaPlayer.load(); break; } } }

Κατ 'αρχάς, ανακτούμε τα ορίσματα της μεταβλητής της συνάρτησης (ενδέχεται να έχουμε παράσχει μόνο ένα αρχείο προέλευσης βίντεο ή ίσως περισσότερα από δύο). Για κάθε αρχείο βίντεο, λαμβάνουμε την επέκταση του αρχείου. Πρέπει να ελέγξουμε αν το πρόγραμμα περιήγησης μπορεί πραγματικά να αναπαράγει αυτόν τον τύπο αρχείου, οπότε ορίζουμε μια άλλη συνάρτηση, canPlayVideo (), η οποία θα κάνει ακριβώς αυτό:

function canPlayVideo(ext) { var ableToPlay = mediaPlayer.canPlayType('video/' + ext); if (ableToPlay == '') return false; else return true; }

Αυτή η συνάρτηση απλά καλεί τη μέθοδο canPlayType () του API πολυμέσων. Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με αυτό στην υποστηρικτική λήψη για το σεμινάριο. Εάν επιστραφεί μια κενή συμβολοσειρά, υποθέτουμε ότι το πρόγραμμα περιήγησης δεν μπορεί να παίξει αυτό το αρχείο. Διαφορετικά, υποθέτουμε ότι μπορεί. Εάν η συνάρτηση canPlayVideo () μας ενημερώνει ότι μπορεί να γίνει αναπαραγωγή αυτού του συγκεκριμένου αρχείου βίντεο, πρέπει να επαναφέρουμε το πρόγραμμα αναπαραγωγής πολυμέσων, το οποίο κάνουμε μέσω της λειτουργίας resetPlayer () που προσθέσαμε νωρίτερα.

Το ολοκληρωμένο πρόγραμμα αναπαραγωγής πολυμέσων μας, με μια λίστα αναπαραγωγής διαθέσιμων αρχείων

Το ολοκληρωμένο πρόγραμμα αναπαραγωγής πολυμέσων μας, με μια λίστα αναπαραγωγής διαθέσιμων αρχείων

Τέλος, πρέπει να φορτώσουμε το νέο αρχείο βίντεο στη συσκευή αναπαραγωγής ρυθμίζοντας το src και, στη συνέχεια, καλέστε τη μέθοδο φόρτωσης () στο ίδιο το πρόγραμμα αναπαραγωγής. Το νέο βίντεο είναι τώρα έτοιμο για αναπαραγωγή. Μπορείτε να δείτε μια επίδειξη του τελικού αποτελέσματος εδώ .

Περίληψη

Αυτό το σεμινάριο καλύπτει μόνο τα βασικά στοιχεία του τι μπορείτε να κάνετε με το API πολυμέσων και πώς μπορείτε να το χρησιμοποιήσετε για να παρέχετε ένα προσαρμοσμένο σύνολο ελέγχου για ένα πρόγραμμα αναπαραγωγής πολυμέσων HTML5. Ενώ έχουμε επικεντρωθεί στο βίντεο, ο παραπάνω κώδικας μπορεί να προσαρμοστεί πολύ εύκολα για να υποστηρίζει ήχο HTML5 αντί ή και βίντεο.

Θα μπορούσαμε επίσης να έχουμε προσθέσει επιπλέον χειριστήρια, όπως χρονομετρημένες οθόνες για πολυμέσα, κουμπιά για μετάβαση στην αρχή και το τέλος του πολυμέσου ή τη δυνατότητα μετάβασης προς τα εμπρός και πίσω μέσα στα μέσα μέσω της γραμμής προόδου. Γιατί να μην εξερευνήσετε την ηλεκτρονική τεκμηρίωση για το API και δείτε αν μπορείτε να προσθέσετε αυτές τις λειτουργίες μόνοι σας στη συσκευή αναπαραγωγής;

Λόγια: Ίαν Ντέβλιν

Σας άρεσε αυτό; Διαβάστε αυτά!

Αντιμετωπίζετε το HTML5; Πείτε μας για αυτό στα σχόλια!