Чи можливий стиль звукового тегу html5?


120

Я не знайшов ресурсів, як це зробити. Щось таке просте, як зміна кольору гравця було б непогано мати :)


3
Змушує мене думати про кнопки ритму на старих вурлітцах - "самба", "джаз", "вальс", ...
Девід Гелхар

1
Різні браузери по- різному реагують на стилізацію звукового елемента - stackoverflow.com/a/27765938/325251
mvark

1
так, і, тобто, це виглядає найгірше. як вони можуть виглядати так погано?
live-love

1
відео дизайн крос - браузер відповідь advprog.blogspot.co.uk/2013/07 / ...
мишачий

@ 40-Любов: це серйозне питання? це Microsoft !!
Рінго

Відповіді:


47

Так! Звуковий тег HTML5 з атрибутом "controls" використовує програвач за замовчуванням у веб-переглядачі. Ви можете налаштувати його на свій смак, не використовуючи елементи керування браузера, а прокатуючи власні елементи керування та спілкуючись із аудіо API через javascript.

На щастя, інші люди це вже зробили. Мій улюблений програвач зараз - jPlayer , він дуже стильний і чудово працює. Перевір.


49
Отже, відповідь "ні, це неможливо, ви повинні використовувати зовнішній плеєр"?
Фернандо

2
@Fernando: це дійсно можливо. Це відповідає на питання "чи можливо?"
Дан Шнау

3
Дякую @dsschnau. Я відправив свій коментар , тому що мова йде про стилізації html5 відео тега, і всі відповіді, більш-менш , як та, можливо, з допомогою інших тегів .
Фернандо

10
Отже, це справді "ні"? Прокат власного інтерфейсу - це не одне і те ж, що залишається наявною розміткою.
боб

2
Ця відповідь насправді є лише посиланням на ресурс. Що робити, якщо jPlayer піде ?
Кайл

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

ДОВІДКА: https://chromium.googlesource.com/chromium/blink/+/72fef91ac1ef679207f51def8133b336a6f6588f/Source/core/css/mediaControls.css?autodive=0%2F%2F%2F


18
Погана презентація, але корисний селектор CSS!
benoît

6
Ви можете, будь ласка, показати приклад, як їх використовувати? просто зразок коду?
Xsmael

9
Це підтримується лише веб-браузерами (наприклад, не Firefox, IE тощо)
gilad mayani

2
Дуже приємне хакерство, правильна відповідь і велике спасибі! я змінюю стиль аудіо тегу без болю та додаткового коду JS, ViVa Fabio
java acm

1
Як видається, буде скопійовано / вставлено з gist.github.com/afabbro/3759334
діахеделік

64

Так: ви можете приховати вбудований інтерфейс браузера (видаливши controlsатрибут з audio) і замість цього побудувати власний інтерфейс і керувати відтворенням за допомогою Javascript ( джерело ):

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

Потім ви можете стилізувати елементи, як вам захочеться, використовуючи CSS.

Посилання на MDN HTMLAudioElement API


звичайно , це (.play) не працюватиме на IOS , як він заблокований (див stackoverflow.com/questions/31776548 / ... )
user1432181

30

Зовнішній вигляд тегу залежить від браузера, але ви можете його приховати, створити власний інтерфейс і керувати відтворенням за допомогою Javascript.


14

деякі кольорові настройки

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

1
це швидкий і брудний спосіб змінити основні кольори гравця, дуже зручно
wakandan

Я запилив свої реєстраційні дані, щоб увійти, підтвердити це та сказати "ДЯКУЮ ВАМ".
Марк Амос


8

Кен мав і це правильно.

cssтег:

audio {

}

отримає певні результати. здається, він не хоче, щоб гравець не мав висоти вище або нижче 25 пікселів, але ширину можна скоротити або подовжити на деяку міру.

це було мені досить добре; дивіться цей приклад (попередження, звук відтворюється автоматично): www.thenewyorkerdeliinc.com


Для мене великою проблемою є Internet Explorer. Це виглядає жахливо та іншим кольором та набагато більшим розміром, ніж інші плеєри браузера, хоча ширина встановлена ​​на 150 пікселів
Рінго

Якщо вам потрібно запустити плеєр IE9 + в невеликий простір, висота 25 пікселів і ширина 100 пікс працювали для мене. Я думаю, що висота 25 пікселів була ключовою, але більша кількість не працювала з будь-якої причини.
Рінго

На жаль, посилання не працює
Олексій Сороколетов

6

Щоб змінити лише колір плеєра, просто зверніться до аудіотек у вашому файлі css, наприклад, на одному з моїх сайтів програвач став невидимим (білий на білому), тому я додав:

audio {
    background-color: #95B9C7;
}

Це змінило програвач на світло-синій.


12
Це не змінює колір мого плеєра, він лише кладе колір фону за ним. Будь-яка ідея чому?
Том

1
@ Тому, що це рішення не для зміни сірого фону програвача за замовчуванням :-) Такий же результат, що і ти для мене.
Флоріан Дойен

0

Так, можливо, відповідь @ Fábio Zangirolami

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

Не працює на Firefox 77
Генрі

-4

Якщо ви хочете стилізувати браузер у стандартному музичному плеєрі в CSS:

audio {
    enter code here;
}

1
не повний опис дуже простий, і я можу використовувати цей спосіб для стилізації всіх елементів аудіо
Davod Aslanifakor

Навіть побіжна перевірка цієї відповіді виявила б, що це неправильно.
Ісаак Любов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.