Có thể tạo kiểu cho thẻ âm thanh html5 không?


120

Tôi không tìm thấy bất kỳ tài nguyên nào về cách làm điều đó. Một cái gì đó đơn giản như thay đổi màu sắc của trình phát sẽ rất tuyệt :)


3
Làm tôi liên tưởng đến các nút nhịp điệu trên những chiếc Wurlitzer cũ - "samba", "jazz", "waltz", ...
David Gelhar

1
Trình duyệt khác nhau phản ứng khác nhau với phong cách của các yếu tố âm thanh - stackoverflow.com/a/27765938/325251
mvark

1
vâng, và tức là nó trông tệ nhất. Làm thế nào họ có thể làm cho nó trông xấu như vậy?
live-love

1
phong cách phim trình duyệt chéo câu trả lời advprog.blogspot.co.uk/2013/07/...
Mousey

@ 40-Tình yêu: đó có phải là một câu hỏi nghiêm túc? đó là Microsoft !!
Ringo

Câu trả lời:


47

Đúng! Thẻ âm thanh HTML5 có thuộc tính "điều khiển" sử dụng trình phát mặc định của trình duyệt. Bạn có thể tùy chỉnh nó theo ý thích của mình bằng cách không sử dụng các điều khiển của trình duyệt mà sử dụng các điều khiển của riêng bạn và nói chuyện với API âm thanh qua javascript.

May mắn thay, những người khác đã làm điều này. Trình phát yêu thích của tôi lúc này là jPlayer , nó rất dễ tạo kiểu và hoạt động tuyệt vời. Kiểm tra nó ra.


49
Vậy câu trả lời là "không, không được, phải dùng đầu phát bên ngoài"?
Fernando

2
@Fernando: thực sự là có thể. Điều này trả lời câu hỏi "nó có thể?"
Dan Schnau

3
Cảm ơn bạn @dsschnau. Tôi đã đăng nhận xét của mình vì câu hỏi là về tạo kiểu thẻ video html5 và tất cả các câu trả lời đều giống như có, có thể, bằng cách sử dụng các thẻ khác .
Fernando

10
Vì vậy, đó thực sự là một "không"? Cuộn giao diện người dùng của riêng bạn không giống như một đánh dấu hiện có.
bob

2
Câu trả lời này thực sự chỉ là một liên kết đến một tài nguyên. Điều gì sẽ xảy ra nếu jPlayer biến mất ?
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

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


18
Trình bày kém nhưng bộ chọn CSS hữu ích!
benoît

6
bạn có thể vui lòng chỉ cho một ví dụ làm thế nào để sử dụng chúng? chỉ là mã mẫu?
Xsmael

9
Điều này chỉ được hỗ trợ bởi các trình duyệt webkit-based (ví dụ như không Firefox, IE, vv)
Gilad mayani

2
Hack rất hay, đó là câu trả lời chính xác và cảm ơn rất nhiều! tôi thay đổi phong cách của thẻ âm thanh mà không đau đớn và mã JS bổ sung, ViVa Fabio
java acm

1
Dường như được sao chép / dán từ gist.github.com/afabbro/3759334
diachedelic

64

Có: bạn có thể ẩn giao diện người dùng trình duyệt tích hợp (bằng cách xóa controlsthuộc tính khỏi audio) và thay vào đó, xây dựng giao diện của riêng bạn và kiểm soát phát lại bằng Javascript ( nguồn ):

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

Sau đó, bạn có thể tạo kiểu các phần tử theo cách bạn muốn bằng cách sử dụng CSS.

Tham chiếu API MDN HTMLAudioElement


chắc chắn điều này (.play) sẽ không hoạt động trên IOS vì nó bị chặn (xem stackoverflow.com/questions/31776548/… )
user1432181

30

Sự xuất hiện của thẻ phụ thuộc vào trình duyệt, nhưng bạn có thể ẩn thẻ, xây dựng giao diện của riêng mình và kiểm soát việc phát lại bằng Javascript.


14

một số điều chỉnh màu sắc

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

1
đây là một cách nhanh chóng và bẩn thỉu để thay đổi màu sắc cơ bản của trình phát, rất tiện dụng
wakandan

Tôi đã xóa thông tin đăng nhập của mình để đăng nhập, tán thành điều này và nói "CẢM ƠN".
Marc Amos


8

Ken cũng đã đúng như vậy.

một cssthẻ:

audio {

}

sẽ giúp bạn có được một số kết quả. Có vẻ như nó không muốn trình phát bất kỳ chiều cao nào trên hoặc dưới 25px nhưng chiều rộng có thể được rút ngắn hoặc dài ra ở một mức độ nào đó.

điều này đã đủ tốt cho tôi; xem ví dụ này (cảnh báo, âm thanh phát tự động): www.thenewyorkerdeliinc.com


Đối với tôi, một vấn đề lớn là Internet Explorer. Nó trông khủng khiếp, màu sắc khác và kích thước lớn hơn nhiều so với các trình phát trình duyệt khác, mặc dù chiều rộng được đặt thành 150px
Ringo

Nếu bạn cần đưa trình phát IE9 + vào một không gian nhỏ, chiều cao 25px và chiều rộng 100px phù hợp với tôi. Tôi nghĩ rằng chiều cao 25px là quan trọng, nhưng những con số lớn hơn không hoạt động vì bất kỳ lý do gì.
Ringo

Rất tiếc, liên kết bị lỗi
Alex Sorokoletov

6

Để chỉ thay đổi màu sắc của trình phát, chỉ cần giải quyết thẻ âm thanh trong tệp css của bạn, chẳng hạn như trên một trong các trang web của tôi, trình phát đã ẩn (màu trắng trên nền trắng), vì vậy tôi đã thêm:

audio {
    background-color: #95B9C7;
}

Điều này đã thay đổi trình phát thành màu xanh lam nhạt.


12
Điều này không làm thay đổi màu của trình phát của tôi, nó chỉ đặt một màu nền đằng sau nó. Bất kỳ ý tưởng tại sao?
Tom

1
@Tom vì giải pháp này không phải để thay đổi nền màu xám mặc định của trình phát :-) Kết quả tương tự như bạn cho tôi.
Florian Doyen

0

Có, có thể, từ câu trả lời của @ Fábio Zangirolami

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

Không hoạt động trên Firefox 77
Henry

-4

Nếu bạn muốn tạo kiểu cho trình phát nhạc chuẩn của trình duyệt trong CSS:

audio {
    enter code here;
}

1
không mô tả đầy đủ là rất đơn giản và tôi có thể sử dụng cách này cho phong cách tất cả các âm thanh yếu tố
Dávod Aslanifakor

Ngay cả khi kiểm tra sơ bộ câu trả lời này cũng sẽ tiết lộ rằng nó sai.
Isaac Lubow
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.