Ist es möglich, HTML5-Audio-Tags zu formatieren?


120

Ich habe keine Ressourcen dafür gefunden. Etwas so Einfaches wie das Ändern der Farbe des Players wäre schön :)


3
Erinnert mich an die Rhythmusknöpfe der alten Wurlitzer - "Samba", "Jazz", "Walzer", ...
David Gelhar

1
Verschiedene Browser reagieren unterschiedlich auf das Styling des Audioelements - stackoverflow.com/a/27765938/325251
mvark

1
ja, und auf dh es sieht am schlimmsten aus. Wie können sie es so schlecht aussehen lassen?
Live-Love

1
Video Styling Cross Browser Antwort advprog.blogspot.co.uk/2013/07/…
Mousey

@ 40-Love: Ist das eine ernste Frage? Es ist Microsoft!
Ringo

Antworten:


46

Ja! Das HTML5-Audio-Tag mit dem Attribut "Steuerelemente" verwendet den Standard-Player des Browsers. Sie können es nach Ihren Wünschen anpassen, indem Sie nicht die Browser-Steuerelemente verwenden, sondern Ihre eigenen Steuerelemente rollen und über Javascript mit der Audio-API sprechen.

Zum Glück haben andere Leute dies bereits getan. Mein momentaner Lieblingsspieler ist jPlayer , er ist sehr stylisch und funktioniert großartig. Hör zu.


49
Die Antwort lautet also "Nein, es ist nicht möglich, Sie müssen einen externen Player verwenden"?
Fernando

2
@ Fernando: Es ist in der Tat möglich. Dies beantwortet die Frage "ist es möglich?"
Dan Schnau

3
Danke @dsschnau. Ich habe meinen Kommentar gepostet, weil es bei der Frage um das Styling des HTML5- Video- Tags geht und alle Antworten mehr oder weniger wie Ja sind. Es ist möglich, andere Tags zu verwenden .
Fernando

10
Also, ist das wirklich ein "Nein"? Das Rollen Ihrer eigenen Benutzeroberfläche ist nicht dasselbe wie das Ablegen vorhandener Markups.
Bob

2
Diese Antwort ist wirklich nur ein Link zu einer Ressource. Was passiert , wenn JPlayer weggeht ?
Kyle

73
<audio>

audio::-webkit-media-controls-panel

audio::-webkit-media-controls-mute-button

audio::-webkit-media-controls-play-button

audio::-webkit-media-controls-timeline-container

audio::-webkit-media-controls-current-time-display

audio::-webkit-media-controls-time-remaining-display

audio::-webkit-media-controls-timeline

audio::-webkit-media-controls-volume-slider-container

audio::-webkit-media-controls-volume-slider

audio::-webkit-media-controls-seek-back-button

audio::-webkit-media-controls-seek-forward-button

audio::-webkit-media-controls-fullscreen-button

audio::-webkit-media-controls-rewind-button

audio::-webkit-media-controls-return-to-realtime-button

audio::-webkit-media-controls-toggle-closed-captions-button

REFERENZ: https://chromium.googlesource.com/chromium/blink/+/72fef91ac1ef679207f51def8133b336a6f6588f/Source/core/css/mediaControls.css?autodive=0%2F%2F%2F


18
Schlechte Präsentation, aber nützliche CSS-Auswahl!
Benoît

6
Können Sie bitte ein Beispiel zeigen, wie man diese benutzt? nur Beispielcode?
Xsmael

9
Dies wird nur von Webkit-basierten Browsern unterstützt (z. B. nicht Firefox, IE usw.)
Gilad Mayani

2
Sehr schönes Hacken, es ist die richtige Antwort und vielen Dank! Ich ändere den Stil des Audio-Tags ohne Schmerzen und zusätzlichen JS-Code, ViVa Fabio
Java Acm


64

Ja: Sie können die integrierte Browser-Benutzeroberfläche ausblenden (indem Sie das controlsAttribut entfernen audio) und stattdessen Ihre eigene Benutzeroberfläche erstellen und die Wiedergabe mit Javascript ( Quelle ) steuern :

<audio id="player" src="vincent.mp3"></audio>
<div> 
  <button onclick="document.getElementById('player').play()">Play</button> 
  <button onclick="document.getElementById('player').pause()">Pause</button> 
  <button onclick="document.getElementById('player').volume += 0.1">Vol +</button> 
  <button onclick="document.getElementById('player').volume -= 0.1">Vol -</button> 
</div>

Sie können die Elemente dann mithilfe von CSS nach Ihren Wünschen formatieren.

MDN HTMLAudioElement API-Referenz


Sicherlich würde dies (das .play) unter IOS nicht funktionieren, da es blockiert ist (siehe stackoverflow.com/questions/31776548/… )
user1432181

30

Das Erscheinungsbild des Tags ist browserabhängig. Sie können es jedoch ausblenden, eine eigene Benutzeroberfläche erstellen und die Wiedergabe mithilfe von Javascript steuern.


14

einige Farbabstimmungen

audio {
    filter: sepia(20%) saturate(70%) grayscale(1) contrast(99%) invert(12%);
    width: 200px;
    height: 25px;
}

1
Dies ist eine schnelle und schmutzige Möglichkeit, die Grundfarben des Players zu ändern, sehr praktisch
Wakandan

Ich habe meine Anmeldedaten abgestaubt, um mich anzumelden, dies zu bewerten und "DANKE" zu sagen.
Marc Amos


8

Ken hatte es auch richtig.

ein cssTag:

audio {

}

erhalten Sie einige Ergebnisse. Es scheint, dass der Spieler keine Höhe über oder unter 25 Pixel haben möchte, aber die Breite kann bis zu einem gewissen Grad verkürzt oder verlängert werden.

das war gut genug für mich; Siehe dieses Beispiel (Warnung, Audio wird automatisch abgespielt ): www.thenewyorkerdeliinc.com


Ein großes Problem ist für mich der Internet Explorer. Es sieht schrecklich und anders aus und viel größer als die anderen Browser-Player, obwohl die Breite auf 150px eingestellt ist
Ringo

Wenn Sie den IE9 + -Player auf kleinem Raum benötigen, hat eine Höhe von 25 Pixel und eine Breite von 100 Pixel für mich funktioniert. Ich denke, die Höhe von 25px war der Schlüssel, aber größere Zahlen funktionierten aus irgendeinem Grund nicht.
Ringo

Der Link ist leider nicht erreichbar
Alex Sorokoletov

6

Um nur die Farbe des Players zu ändern, adressieren Sie einfach das Audio-Tag in Ihrer CSS-Datei. Beispielsweise wurde der Player auf einer meiner Websites unsichtbar (weiß auf weiß), und ich fügte hinzu:

audio {
    background-color: #95B9C7;
}

Dadurch wurde der Player hellblau.


12
Dadurch wird die Farbe meines Players nicht geändert, sondern nur eine Hintergrundfarbe dahinter. Irgendeine Idee warum?
Tom

1
@ Tom, weil diese Lösung nicht dazu dient, den grauen Standardhintergrund des Players zu ändern :-) Gleiches Ergebnis wie Sie für mich.
Florian Doyen

0

Ja, es ist möglich, von @ Fábio Zangirolami zu antworten

audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {
                background-color: red;
}

Funktioniert nicht mit Firefox 77
Henry

-4

Wenn Sie den Standard-Musikplayer des Browsers im CSS formatieren möchten:

audio {
    enter code here;
}

1
Die nicht vollständige Beschreibung ist sehr einfach und ich kann diese Methode zum Stylen aller Audio-Elemente verwenden
Davod Aslanifakor

Selbst eine flüchtige Überprüfung dieser Antwort hätte ergeben, dass sie falsch ist.
Isaac Lubow
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.