È possibile applicare uno stile al tag audio HTML5?


120

Non ho trovato risorse su come farlo. Sarebbe bello avere qualcosa di semplice come cambiare il colore del giocatore :)


3
Mi fa pensare ai pulsanti ritmici dei vecchi Wurlitzers - "samba", "jazz", "waltz", ...
David Gelhar

1
Browser diversi reagiscono in modo diverso alla styling dell'elemento audio - stackoverflow.com/a/27765938/325251
mvark

1
sì, e su ie sembra il peggiore. come possono farlo sembrare così brutto?
live-love

1
il video styling cross browser risposta advprog.blogspot.co.uk/2013/07/...
Mousey

@ 40-Love: è una domanda seria? è Microsoft !!
Ringo

Risposte:


47

Sì! Il tag audio HTML5 con l'attributo "controls" utilizza il player predefinito del browser. Puoi personalizzarlo a tuo piacimento non utilizzando i controlli del browser, ma ruotando i tuoi controlli e parlando con l'API audio tramite javascript.

Fortunatamente, altre persone l'hanno già fatto. Il mio lettore preferito in questo momento è jPlayer , è molto personalizzabile e funziona alla grande. Controlla.


49
Quindi la risposta è "no, non è possibile, devi usare un player esterno"?
Fernando

2
@Fernando: è davvero possibile. Questo risponde alla domanda "è possibile?"
Dan Schnau

3
Grazie @dsschnau. Ho postato il mio commento perché la domanda riguarda lo stile dei tag video html5 e tutte le risposte sono più o meno come sì, è possibile, utilizzando altri tag .
Fernando

10
Quindi, è davvero un "no"? Il rollio della tua interfaccia utente non è la stessa cosa di un markup esistente.
bob

2
Questa risposta è in realtà solo un collegamento a una risorsa. E se jPlayer scompare ?
Kyle

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

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


18
Cattiva presentazione ma utile selettore CSS!
benoît

6
puoi per favore mostrare un esempio su come usarli? solo codice di esempio?
Xsmael

9
Questo è supportato solo dai browser basati su
webkit

2
Hacking molto bello, è la risposta corretta e molte grazie! cambio lo stile del tag audio senza dolore e codice JS aggiuntivo, ViVa Fabio
java acm

1
Sembra essere stato copiato / incollato da gist.github.com/afabbro/3759334
diachedelic

64

Sì: puoi nascondere l'interfaccia utente del browser integrata (rimuovendo l' controlsattributo da audio) e invece creare la tua interfaccia e controllare la riproduzione utilizzando Javascript ( sorgente ):

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

Puoi quindi modellare gli elementi come preferisci usando i CSS.

Riferimento API MDN HTMLAudioElement


sicuramente questo (il .play) non funzionerebbe su IOS in quanto è bloccato (vedi stackoverflow.com/questions/31776548/… )
user1432181

30

L'aspetto del tag dipende dal browser, ma puoi nasconderlo, creare la tua interfaccia e controllare la riproduzione utilizzando Javascript.


14

alcune regolazioni dei colori

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

1
questo è un modo rapido e sporco per cambiare i colori di base del giocatore, molto utile
wakandan

Ho rispolverato le mie credenziali di accesso per accedere, votare a favore e dire "GRAZIE".
Marc Amos


8

Anche Ken aveva ragione.

un csstag:

audio {

}

ti darà dei risultati. sembra che non voglia che il giocatore abbia un'altezza superiore o inferiore a 25px ma la larghezza può essere accorciata o allungata in una certa misura.

questo era abbastanza buono per me; vedere questo esempio (avviso, l'audio viene riprodotto automaticamente): www.thenewyorkerdeliinc.com


Per me, un grosso problema è Internet Explorer. Sembra terribile e ha un colore diverso e dimensioni molto più grandi rispetto agli altri giocatori del browser, anche se la larghezza è impostata su 150px
Ringo

Se hai bisogno di inserire il lettore IE9 + in uno spazio piccolo, un'altezza di 25 px e una larghezza di 100 px hanno funzionato per me. Penso che l'altezza di 25 px fosse la chiave, ma numeri più grandi non funzionavano per qualsiasi motivo.
Ringo

Il collegamento è purtroppo interrotto
Alex Sorokoletov

6

Per cambiare solo il colore del player, indirizza semplicemente il tag audio nel tuo file css, ad esempio su uno dei miei siti il ​​player è diventato invisibile (bianco su bianco) quindi ho aggiunto:

audio {
    background-color: #95B9C7;
}

Questo ha cambiato il giocatore in azzurro.


12
Questo non cambia il colore del mio lettore, mette solo un colore di sfondo dietro di esso. Qualche idea sul perché?
Tom

1
@ Tom perché questa soluzione non è per cambiare lo sfondo grigio predefinito del lettore :-) Stesso risultato che hai per me.
Florian Doyen

0

Sì, è possibile, dalla risposta di @ Fábio Zangirolami

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

Non funziona su Firefox 77
Henry

-4

Se desideri applicare uno stile al lettore musicale standard del browser nel CSS:

audio {
    enter code here;
}

1
la descrizione non completa è molto semplice e posso usare in questo modo per lo styling di tutti gli elementi audio
Davod Aslanifakor

Anche un controllo superficiale di questa risposta avrebbe rivelato che è sbagliato.
Isaac Lubow
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.