Cyber Monday Sale 40% off unlimited courses & creative assets! 40% off unlimited assets! Save Now
Advertisement
  1. Web Design
  2. Site Elements

Erstellung des benutzerdefinierten HTML5-Audio-Player

by
Read Time:14 minsLanguages:

German (Deutsch) translation by Alex Grigorovich (you can also view the original English article)

In diesem Tutorial werde ich Ihnen HTML5-Audio vorstellen und Ihnen zeigen, wie Sie Ihren eigenen Player erstellen können.

Wenn Sie eine Verknüpfung erstellen möchten, schauen Sie sich den vorgefertigten HTML5-Audio-Player an, der auf Envato Market verfügbar ist. Sie können Wiedergabelisten aus verschiedenen Quellen erstellen und verfügen über eine Vielzahl von Anpassungsoptionen.

HTML5 Audio Player with PlaylistHTML5 Audio Player with PlaylistHTML5 Audio Player with Playlist
HTML5 Audio Player mit Wiedergabeliste

Sie können auch viele HTML5-Experten in Envato Studio finden, die Ihnen helfen.


Einführung

Bisher war die Implementierung von Audio in ein Webprojekt ein langwieriger Prozess, der sich stark auf Plugins von Drittanbietern wie Flash stützte. Da das iPhone das Plugin nicht akzeptiert und die Nachricht, dass Adobe Flash für Handys nicht mehr unterstützt, nicht akzeptiert, suchen viele Entwickler nach anderen Möglichkeiten, Audio in ihre Projekte einzubeziehen. Hier setzt HTML5-Audio an, um das Problem zu lösen.

Obwohl HTML5 einen Standard für die Wiedergabe von Audiodateien im Web bietet, steckt es noch in den Kinderschuhen und hat noch einen langen Weg vor sich, bevor es alles bieten kann, was andere Plugins wie Flash-Audio bieten. In den meisten Fällen ist dies jedoch mehr als ausreichend.


Einfaches HTML5-Audio

Die einfachste Möglichkeit, Audio mithilfe von HTML5 in eine Webseite zu implementieren, ist die Verwendung des neuen Audio-Tags. Fügen Sie dies Ihrem HTML5-Dokument mit dem folgenden Code hinzu:

Wenn Sie sich den obigen Code ansehen, können Sie sehen, dass ich das <audio>-Tag deklariert und das Steuerelementattribut definiert habe, sodass die Standardsteuerelemente für den Player angezeigt werden.

Im <audio> verschachtelt haben wir 2 'src'-Tags. Einer hat einen MP3-Track und der andere das OGG-Format. Das OGG-Format wird insbesondere verwendet, um die Musikwiedergabe in Firefox zu ermöglichen, da Firefox aufgrund von Lizenzproblemen MP3 ohne Verwendung eines Plugins nicht unterstützt. Eine Textzeichenfolge Ihr Browser unterstützt das Audioelement nicht. Lassen Sie die Benutzer mit nicht unterstützten Browsern wissen, was los ist.


Der Standard-HTML5-Audio-Player

HTML5-Audio-Tag-Attribute

Das Tag unterstützt nicht nur globale HTML5-Attribute, sondern auch eine Reihe von Attributen, die für sich selbst eindeutig sind.

  • autoplay - Dies kann auf "true" gesetzt oder leer gelassen werden, um festzulegen, ob der Titel automatisch abgespielt werden soll, sobald die Seite geladen wird.
  • controls - Wie im obigen Beispiel gezeigt, wird hiermit festgelegt, ob die nativen Steuerelemente wie "Wiedergabe, Pause" usw. angezeigt werden sollen.
  • loop - Dies kann auf "loop" gesetzt werden und legt fest, ob der Titel nach Beendigung erneut abgespielt werden soll.
  • preload - Dies kann auf "auto" (das beschreibt, ob die Datei geladen werden soll, sobald die Seite geladen wird), "metadata" (das beschreibt, ob nur die Metadaten, der Titel des Titels usw. geladen werden sollen), "none" ( Dies schreibt vor, dass der Browser die Datei beim Laden der Seite nicht laden soll.
  • src - Dies ist auch im obigen Beispiel zu sehen und definiert die URL der Musik, die vom Audio-Tag abgespielt werden soll.

Drehen Sie es auf elf

In den letzten Schritten haben wir uns die einfachste Form von HTML5-Audio angesehen. Wenn wir anfangen, das Audio-Tag mit Javascript zu verwenden, können wir einige wirklich interessante und nützliche Audio-Player erstellen. Werfen wir einen Blick darauf, was jQuery für uns tun kann. Nachdem wir in jQuery das document ready definiert haben, können wir eine neue Audiovariable erstellen, um unsere Audiodatei so einfach zu halten:

Das ist wirklich so einfach! Wenn wir dann eine Aktion für das Audio ausführen möchten, können wir sie mithilfe der Variablen 'myaudio' auslösen. Hier ist eine Liste von Aktionen, die wir mit der Variablen ausführen können. Notieren Sie sich diese, wir werden einige davon später im Tut verwenden, wenn wir unseren Audio-Player erstellen.

Wenn Sie möchten, dass eine Funktion aufgerufen wird, sobald die Audiowiedergabe beendet ist, können Sie 'myaudio.addEventListener('ended',myfunc)' verwenden. Dies ruft 'myfunc()' auf, sobald die Audiowiedergabe beendet ist.


Die Erstellung des HTML5 Audio Players: Markup

Nachdem Sie ein wenig Hintergrundwissen zu HTML5-Audio hatten und die Grundprinzipien verstanden, ist es an der Zeit, diese in die Praxis umzusetzen und einen benutzerdefinierten HTML5-Audio-Player zu erstellen. Ich werde die Entwurfsphase verpassen, da sie außerhalb des Rahmens dieses Tutorials liegt. Sie können jedoch den zugehörigen Quellcode herunterladen und die PSD durchsuchen, um eine Vorstellung davon zu erhalten, wie sie zusammengesetzt ist.

Der obere Teil des Dokuments besteht aus dem HTML5-Doctype. Yahoos CSS Reset, die Google-Webschrift 'Lobster' für den Titel. Dann haben wir die neueste jQuery und die benutzerdefinierte JavaScript-Datei js.js. Schließlich haben wir html5slider.js, mit dem Firefox den HTML5-Eingabebereichstyp anzeigen kann, den wir für den Audio-Scrubber verwenden werden.

Nach dem h1-Titel habe ich ein div mit einer Klasse von "container" und "gradient" erstellt. Ich habe eine separate Gradientenklasse erstellt, da diese für einige andere Elemente wiederverwendet wird. Innerhalb von ".container" habe ich ein Bild hinzugefügt (das wird das Albumcover sein), dann dienen die drei Ankertags als Steuerelemente für den Player. Dazwischen befindet sich das Eingabefeld für den Scrubber/HTML5-Bereich.


Die Erstellung des HTML5 Audio Players: Stile

Anstatt jeden Aspekt des CSS durchzugehen, werde ich Ihnen einen Überblick geben und bestimmte Teile notieren, auf die Sie möglicherweise achten möchten.

Im folgenden Code habe ich den Verlauf für den Player erstellt, der mit diesem CSS-Verlaufseditor generiert wurde. Ich habe dann den Player ".container" mit einigen CSS3-Übergängen erstellt.

Sie werden feststellen, dass ich auch das CSS3-Box-Größenattribut "border-box" verwendet habe. Auf diese Weise kann die 10-Pixel-Polsterung um den Container in der von mir angegebenen Breite enthalten sein, in diesem Fall 427 Pixel. Wenn ich dies nicht verwendet hätte, würde die Polsterung dem 427px hinzugefügt, wodurch der Container größer wird, als ich es eigentlich möchte. Heutzutage ist es gängige Praxis, * {box-sizing: border-box;} anzuwenden, was eine intuitivere Art des Stylings ermöglicht.

Ich habe auch einige CSS3-Übergänge zu ".coverlarge" hinzugefügt, um einige schöne Übergänge beim ersten Öffnen des Players zu ermöglichen. Das CSS mag auf den ersten Blick etwas überwältigend aussehen, aber viele davon sind spezifische Browserpräfixe, um sicherzustellen, dass der Audio-Player in verschiedenen Browsern gleich aussieht und funktioniert.


Wie der Audio-Player in dieser Phase aussehen soll

Sobald der Container für den Player fertig ist, ist es Zeit, die eigentlichen Steuerelemente zu erstellen. Die meisten Schaltflächen wurden mit CSS-Sprites erstellt

Leider unterstützt der IE die HTML5-Bereichseingabe noch nicht, daher habe ich beschlossen, den Audio-Scrubber den IE-Benutzern nicht anzuzeigen. Wenn Sie sich in einer Position befinden, in der dies nicht akzeptabel ist, können Sie den Schieberegler für die jQuery UI slider auf ähnliche Weise wie die von mir verwendete Methode verwenden. Trotzdem habe ich mich dafür entschieden, den Scrubber einfach auszublenden, daher Eingabe input{display:none\9!important;} Dies verbirgt im Grunde die Eingabe von dh Benutzern (lesen Sie diesen Thread auf Stack Overflow für weitere Informationen zu \9).

Das Problem mit dem HTML5-Bereichsregler besteht darin, dass nur wenige Browser ein benutzerdefiniertes Styling unterstützen. hauptsächlich Webkit-Browser (Chrome und Safari). Opera und Firefox zeigen leider nur einen Standardbereichsregler an. Wenn Sie ein benutzerdefiniertes Styling für alle Browser benötigen, können Sie den Schieberegler für die jQuery UI slider verwenden, wie bereits erwähnt. Sie können das benutzerdefinierte Design für Webkit-Browser im Attribut input::-webkit-slider-thumb sehen.


Die Erstellung des HTML5 Audio Players: jQuery

Sobald das Styling und Markup gemacht ist, ist es Zeit, den Player zum Leben zu erwecken. Wir können das mit dem Javascript-Framework jQuery schaffen. Sobald das jQuery-document ready deklariert wurde, erstellen wir einige Variablen, in denen wir unsere jQuery-Objekte speichern können.

In der Variablen "song" oben können Sie sehen, dass wir zwei Tracks deklariert haben. Das OGG-Format für Firefox und MP3 für andere Browser. Ich erstelle dann eine bedingte IF-Anweisung, damit wir prüfen können, ob der Browser MP3s abspielen kann oder nicht. Wenn dies möglich ist, wird die Variable "Song" zum MP3-Titel. Wenn nicht, wird das Format "OGG" abgespielt.

Die nächsten Dinge sind Klickfunktionen, mit denen wir die Musik abspielen und anhalten können. Ich verwende die Audio-Aktion play(), um das Audio zu starten, und verwende dann die jQuery-Methode replaceWith, die im Grunde die Wiedergabetaste durch die Pause-Taste ersetzt.

Ich habe auch die Klassen "coverLarge" und "containerLarge" zu "container" und "cover" hinzugefügt. Da ich diesen bereits im CSS CSS3-Übergänge hinzugefügt habe, wird dies einen schönen Übergang hinzufügen, wenn die Audiowiedergabe beginnt. Die "pause"-Funktion funktioniert auf ähnliche Weise, jedoch ohne die Übergänge. Wenn Sie darauf klicken, wird die Pause-Schaltfläche durch die Schaltfläche "Wiedergabe" ersetzt.

Die Stumm- und Stummschalttasten funktionieren ähnlich, wie die Wiedergabe- und Pause-Tasten, rufen Sie die zugehörigen Aktionen auf und ersetzen Sie die Tasten durch die entsprechenden Alternativen.

Wenn der Benutzer auf die Schaltfläche "Schließen" klickt, rufen wir jQuery auf, um die Klassen "containerLarge" und "coverLarge" zu entfernen. Dadurch wird die Abdeckung ausgeblendet und der Player wieder geschlossen. Anschließend halten wir den Player an, indem wir die Aktion pause() aufrufen und die Audio-CurrentTime auf 0 zurücksetzen. Dadurch wird der Track auf den Anfang zurückgesetzt.

Es ist jetzt Zeit, sich dem Audio-Scrubber zuzuwenden, dem die ID "Suchen" zugewiesen wurde. Die erste Funktion besteht darin, den Scrubber auf einen beliebigen Teil des Audios zu verschieben. Dies erfolgt durch Erkennen einer Änderung, wenn jemand den Scrubber bewegt. Wir setzen dann die Datei song.currentTime so, dass sie mit dem Teil des Songs übereinstimmt, zu dem der Scrubber verschoben wurde. Wir setzen auch das max-Attribut, um die Songdauer widerzuspiegeln.

Der letzte Teil der jQuery besteht darin, den "#seek -Wäscher zusammen mit der Dauer des Audios zu bewegen. Dazu fügen wir einen Ereignis-Listener hinzu, und wenn die Audiozeit aktualisiert wird, rufen wir die Funktion auf. Ich habe eine Variable von "curtime" gesetzt, um die aktuelle Songtime zu erhalten. Ich aktualisiere dann den Wert des Scrubbers, um die aktuelle Zeitposition des Audios wiederzugeben.

Und da sind wir fertig! Ein HTML5-Audio-Player, den Sie auf Ihrer Website oder App implementieren können.


Abschluss

Wie bereits erwähnt, steckt HTML5-Audio noch in den Kinderschuhen und bietet noch Verbesserungspotenzial. Im Moment ist das Audio für die Musikwiedergabe ausgelegt und wird daher immer Audio vom Server streamen, was dazu führt, dass einige Browser Probleme mit der Wiedergabe haben. Dies ist nicht immer ein Problem, sondern bedeutet nur, dass es manchmal anfängt zu zahlen, bevor das Audio vollständig heruntergeladen wurde.

Dies kann möglicherweise ein Problem sein, wenn Sie HTML5-Audio für Soundeffekte in Spielen oder audio-intensive Apps verwenden möchten. Aus diesem Grund haben unsere Freunde bei Google eine Methode entwickelt, um die Schwächen des Audio-Tags zu beheben. Google hat einen Vorschlag für die "Web Audio API" erstellt und dem W3C vorgelegt. Dies erweist sich als viel leistungsfähiger als natives HTML5-Audio. Das Problem ist jedoch, dass es derzeit nur in Chrome funktioniert (können Sie sich vorstellen?!).

Sie können mehr über die Web-Audio-API von Google lesen und einige Beispiele im Google-Code sehen oder die Web-Audio-Spezifikation lesen.

Ich hoffe, es hat Ihnen Spaß gemacht, etwas über HTML5-Audio zu lernen und wie Sie Ihre eigenen Player erstellen können. Mein Player enthält grundlegende Steuerelemente, aber nichts hindert Sie daran, weitere Funktionen wie die Lautstärkeregelung und sogar Ihre eigenen benutzerdefinierten Animationen hinzuzufügen. Mit ein wenig Nachdenken und Experimentieren können Sie wirklich einige großartige Audio-Player erstellen. Laden Sie den Quellcode herunter und ich freue mich darauf zu sehen, was Sie sich einfallen lassen!

Wenn Sie weitere Optionen für die Arbeit mit Audioplayern und anderen Medien in HTML5 bekommen möchten, lesen Sie die HTML5-Medienelemente auf Envato Market.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.