Update V. 3.0
Zaktualizowany js. tak by podmiana odtwarzacza zachodziła tylko na elementach na których jeszcze nie była wykonywana, by zlikwidować bug pojawiający się przy parakrotnym wywołaniu funcji podmiany
(function($, window, document, undefined) {
var czyDotyk = 'ontouchstart' in window,
zdarzenieStart = czyDotyk ? 'touchstart' : 'mousedown',
zdarzenieRuch = czyDotyk ? 'touchmove' : 'mousemove',
zdarzenieKoniec = czyDotyk ? 'touchend' : 'mouseup',
zdarzenieAnulowanie = czyDotyk ? 'touchcancel' : 'mouseup',
sekundyNaCzas = function(sekundy) {
var godziny = Math.floor(sekundy / 3600),
minuty = Math.floor(sekundy % 3600 / 60),
sekundy = Math.ceil(sekundy % 3600 % 60);
return (godziny == 0 ? '' : godziny > 0 && godziny.toString().length < 2 ? '0' + godziny + ':' : godziny + ':') + (minuty.toString().length < 2 ? '0' + minuty : minuty) + ':' + (sekundy.toString().length < 2 ? '0' + sekundy : sekundy);
},
czyMoznaOdtworzycTyp = function(plik) {
var elementAudio = document.createElement('audio');
return !!(elementAudio.canPlayType && elementAudio.canPlayType('audio/' + plik.split('.').pop().toLowerCase() + ';').replace(/no/, ''));
};
jQuery.fn.odtwarzaczAudio = function(parametry) {
var parametry = jQuery.extend({
przedrostekKlasy: 'odtwarzaczAudio',
tekstOdtworz: '',
tekstPauza: '',
tekstGlosnosc: ''
}, parametry),
klasyCSS = {},
podklasyCSS = {
odtworzPauza: 'odtworzpauza',
odtwarza: 'odtwarza',
czas: 'czas',
czasBiezacy: 'czas-biezacy',
czasCalkowity: 'czas-calkowity',
pasek: 'pasek',
pasekZaladowany: 'pasek-zaladowany',
pasekOdtworzony: 'pasek-odtworzony',
glosnosc: 'glosnosc',
przyciskGlosnosci: 'przycisk-glosnosci',
regulacjaGlosnosci: 'regulacja-glosnosci',
brakGlosnosci: 'brak-glosnosci',
wycisz: 'wycisz',
mini: 'mini'
};
for (var nazwaPodklasy in podklasyCSS)
klasyCSS[nazwaPodklasy] = parametry.przedrostekKlasy + '-' + podklasyCSS[nazwaPodklasy];
this.each(function() {
if ($(this).hasClass('wystylizowany')) return; // Sprawdzenie, czy element ma już klasę 'wystylizowany'
$(this).addClass('wystylizowany'); // Dodanie klasy 'wystylizowany' po przetworzeniu
if ($(this).prop('tagName').toLowerCase() != 'audio')
return false;
var $this = $(this),
plikAudio = $this.attr('src'),
czyAutoOdtwarzanie = $this.get(0).getAttribute('autoplay'),
czyAutoOdtwarzanie = czyAutoOdtwarzanie === '' || czyAutoOdtwarzanie === 'autoplay' ? true : false,
czyZapetlenie = $this.get(0).getAttribute('loop'),
czyZapetlenie = czyZapetlenie === '' || czyZapetlenie === 'loop' ? true : false,
czyWsparcie = false;
if (typeof plikAudio === 'undefined') {
$this.find('source').each(function() {
plikAudio = $(this).attr('src');
if (typeof plikAudio !== 'undefined' && czyMoznaOdtworzycTyp(plikAudio)) {
czyWsparcie = true;
return false;
}
});
} else if (czyMoznaOdtworzycTyp(plikAudio)) czyWsparcie = true;
var odtwarzacz = $('<div class="' + parametry.przedrostekKlasy + '">' + (czyWsparcie ? $('<div>').append($this.eq(0).clone()).html() : '<embed src="' + plikAudio + '" width="0" height="0" volume="100" autostart="' + czyAutoOdtwarzanie.toString() + '" loop="' + czyZapetlenie.toString() + '" />') + '<div class="' + klasyCSS.odtworzPauza + '" title="' + parametry.tekstOdtworz + '"><a href="#">' + parametry.tekstOdtworz + '</a></div></div>'),
elementAudio = czyWsparcie ? odtwarzacz.find('audio') : odtwarzacz.find('embed'),
elementAudio = elementAudio.get(0);
if (czyWsparcie) {
odtwarzacz.find('audio').css({
'width': 0,
'height': 0,
'visibility': 'hidden'
});
odtwarzacz.append('<div class="' + klasyCSS.czas + ' ' + klasyCSS.czasBiezacy + '"></div><div class="' + klasyCSS.pasek + '"><div class="' + klasyCSS.pasekZaladowany + '"></div><div class="' + klasyCSS.pasekOdtworzony + '"></div></div><div class="' + klasyCSS.czas + ' ' + klasyCSS.czasCalkowity + '"></div><div class="' + klasyCSS.glosnosc + '"><div class="' + klasyCSS.przyciskGlosnosci + '" title="' + parametry.tekstGlosnosc + '"><a href="#">' + parametry.tekstGlosnosc + '</a></div><div class="' + klasyCSS.regulacjaGlosnosci + '"><div><div></div></div></div></div>');
var pasek = odtwarzacz.find('.' + klasyCSS.pasek),
pasekOdtworzony = odtwarzacz.find('.' + klasyCSS.pasekOdtworzony),
pasekZaladowany = odtwarzacz.find('.' + klasyCSS.pasekZaladowany),
czasBiezacy = odtwarzacz.find('.' + klasyCSS.czasBiezacy),
czasCalkowity = odtwarzacz.find('.' + klasyCSS.czasCalkowity),
przyciskGlosnosci = odtwarzacz.find('.' + klasyCSS.przyciskGlosnosci),
regulacjaGlosnosci = odtwarzacz.find('.' + klasyCSS.regulacjaGlosnosci + ' > div'),
domyslnaGlosnosc = 0,
ustawBiezacyCzas = function(e) {
prawdziweZdarzenie = czyDotyk ? e.originalEvent.touches[0] : e;
elementAudio.currentTime = Math.round((elementAudio.duration * (prawdziweZdarzenie.pageX - pasek.offset().left)) / pasek.width());
},
ustawGlosnosc = function(e) {
prawdziweZdarzenie = czyDotyk ? e.originalEvent.touches[0] : e;
elementAudio.volume = Math.abs((prawdziweZdarzenie.pageX - regulacjaGlosnosci.offset().left) / regulacjaGlosnosci.width());
},
aktualizujPasekZaladowany = setInterval(function() {
if (elementAudio.buffered.length > 0) {
pasekZaladowany.width((elementAudio.buffered.end(0) / elementAudio.duration) * 100 + '%');
if (elementAudio.buffered.end(0) >= elementAudio.duration)
clearInterval(aktualizujPasekZaladowany);
}
}, 100);
var testDomyslnejGlosnosci = elementAudio.volume,
testowaGlosnosc = elementAudio.volume = 0.111;
if (Math.round(elementAudio.volume * 1000) / 1000 == testowaGlosnosc) elementAudio.volume = testDomyslnejGlosnosci;
else odtwarzacz.addClass(klasyCSS.brakGlosnosci);
czasCalkowity.html('…');
czasBiezacy.text(sekundyNaCzas(0));
elementAudio.addEventListener('loadeddata', function() {
czasCalkowity.text(sekundyNaCzas(elementAudio.duration));
regulacjaGlosnosci.find('div').width(elementAudio.volume * 100 + '%');
domyslnaGlosnosc = elementAudio.volume;
});
elementAudio.addEventListener('timeupdate', function() {
czasBiezacy.text(sekundyNaCzas(elementAudio.currentTime));
pasekOdtworzony.width((elementAudio.currentTime / elementAudio.duration) * 100 + '%');
});
elementAudio.addEventListener('volumechange', function() {
regulacjaGlosnosci.find('div').width(elementAudio.volume * 100 + '%');
if (elementAudio.volume > 0 && odtwarzacz.hasClass(klasyCSS.wycisz)) odtwarzacz.removeClass(klasyCSS.wycisz);
if (elementAudio.volume <= 0 && !odtwarzacz.hasClass(klasyCSS.wycisz)) odtwarzacz.addClass(klasyCSS.wycisz);
});
elementAudio.addEventListener('ended', function() {
odtwarzacz.removeClass(klasyCSS.odtwarza);
});
pasek.on(zdarzenieStart, function(e) {
ustawBiezacyCzas(e);
pasek.on(zdarzenieRuch, function(e) {
ustawBiezacyCzas(e);
});
})
.on(zdarzenieAnulowanie, function() {
pasek.unbind(zdarzenieRuch);
});
przyciskGlosnosci.on('click', function() {
if (odtwarzacz.hasClass(klasyCSS.wycisz)) {
odtwarzacz.removeClass(klasyCSS.wycisz);
elementAudio.volume = domyslnaGlosnosc;
} else {
odtwarzacz.addClass(klasyCSS.wycisz);
domyslnaGlosnosc = elementAudio.volume;
elementAudio.volume = 0;
}
return false;
});
regulacjaGlosnosci.on(zdarzenieStart, function(e) {
ustawGlosnosc(e);
regulacjaGlosnosci.on(zdarzenieRuch, function(e) {
ustawGlosnosc(e);
});
})
.on(zdarzenieAnulowanie, function() {
regulacjaGlosnosci.unbind(zdarzenieRuch);
});
} else odtwarzacz.addClass(klasyCSS.mini);
if (czyAutoOdtwarzanie) odtwarzacz.addClass(klasyCSS.odtwarza);
odtwarzacz.find('.' + klasyCSS.odtworzPauza).on('click', function() {
if (odtwarzacz.hasClass(klasyCSS.odtwarza)) {
$(this).attr('title', parametry.tekstOdtworz).find('a').html(parametry.tekstOdtworz);
odtwarzacz.removeClass(klasyCSS.odtwarza);
czyWsparcie ? elementAudio.pause() : elementAudio.Stop();
} else {
$(this).attr('title', parametry.tekstPauza).find('a').html(parametry.tekstPauza);
odtwarzacz.addClass(klasyCSS.odtwarza);
czyWsparcie ? elementAudio.play() : elementAudio.Play();
// Pauzowanie innych elementów audio
var wszystkieAudio = $('audio').not(elementAudio);
wszystkieAudio.each(function(index, inneAudio) {
if (!inneAudio.paused) {
inneAudio.pause();
$(inneAudio).closest('.' + parametry.przedrostekKlasy).removeClass(klasyCSS.odtwarza);
}
});
}
return false;
});
$this.replaceWith(odtwarzacz);
});
return this;
};
})(jQuery, window, document);
jQuery(function() {
jQuery('audio').odtwarzaczAudio();
});
Wtyczka Ninja Audio Player to zaawansowane rozwiązanie dla użytkowników WordPress, umożliwiające stylizowane odtwarzanie plików audio. Dzięki wsparciu dla JavaScript i CSS, oferuje ona szeroki zakres funkcji, takich jak responsywność, łatwość integracji i estetyczne wykończenie. Instalacja jest prosta, wystarczy dodać odpowiednie skrypty i style za pomocą PHP. Odtwarzacz posiada intuicyjny interfejs oraz możliwość kontrolowania głośności i postępu odtwarzania. Sprawdź, jak ta wtyczka może urozmaicić Twoją stronę!
ninja-audio-player.php
<?php
/*
Plugin Name: Ninja Audio Player
Description: Stylizowany oudio player
Version: 2.0
Author: Maciej Sajan
Author URI: https://projektninja.com/
*/
function odpal_skrypty_ninja_audio_player(){
wp_enqueue_script('ninja_audio_player_js', plugins_url( '/ninja-audio-player.js', __FILE__ ), array('jquery'), null, true);
wp_register_style('ninja_audio_player_style', plugins_url('ninja-audio-player.css',__FILE__ ));
wp_enqueue_style('ninja_audio_player_style');
}
add_action('init', 'odpal_skrypty_ninja_audio_player');
?>
ninja-audio-player.js
/*
AUTHOR: Osvaldas Valutis, www.osvaldas.info
*/
(function($, window, document, undefined) {
var czyDotyk = 'ontouchstart' in window,
zdarzenieStart = czyDotyk ? 'touchstart' : 'mousedown',
zdarzenieRuch = czyDotyk ? 'touchmove' : 'mousemove',
zdarzenieKoniec = czyDotyk ? 'touchend' : 'mouseup',
zdarzenieAnulowanie = czyDotyk ? 'touchcancel' : 'mouseup',
sekundyNaCzas = function(sekundy) {
var godziny = Math.floor(sekundy / 3600),
minuty = Math.floor(sekundy % 3600 / 60),
sekundy = Math.ceil(sekundy % 3600 % 60);
return (godziny == 0 ? '' : godziny > 0 && godziny.toString().length < 2 ? '0' + godziny + ':' : godziny + ':') + (minuty.toString().length < 2 ? '0' + minuty : minuty) + ':' + (sekundy.toString().length < 2 ? '0' + sekundy : sekundy);
},
czyMoznaOdtworzycTyp = function(plik) {
var elementAudio = document.createElement('audio');
return !!(elementAudio.canPlayType && elementAudio.canPlayType('audio/' + plik.split('.').pop().toLowerCase() + ';').replace(/no/, ''));
};
jQuery.fn.odtwarzaczAudio = function(parametry) {
var parametry = jQuery.extend({
przedrostekKlasy: 'odtwarzaczAudio',
tekstOdtworz: '',
tekstPauza: '',
tekstGlosnosc: ''
}, parametry),
klasyCSS = {},
podklasyCSS = {
odtworzPauza: 'odtworzpauza',
odtwarza: 'odtwarza',
czas: 'czas',
czasBiezacy: 'czas-biezacy',
czasCalkowity: 'czas-calkowity',
pasek: 'pasek',
pasekZaladowany: 'pasek-zaladowany',
pasekOdtworzony: 'pasek-odtworzony',
glosnosc: 'glosnosc',
przyciskGlosnosci: 'przycisk-glosnosci',
regulacjaGlosnosci: 'regulacja-glosnosci',
brakGlosnosci: 'brak-glosnosci',
wycisz: 'wycisz',
mini: 'mini'
};
for (var nazwaPodklasy in podklasyCSS)
klasyCSS[nazwaPodklasy] = parametry.przedrostekKlasy + '-' + podklasyCSS[nazwaPodklasy];
this.each(function() {
if ($(this).prop('tagName').toLowerCase() != 'audio')
return false;
var $this = $(this),
plikAudio = $this.attr('src'),
czyAutoOdtwarzanie = $this.get(0).getAttribute('autoplay'),
czyAutoOdtwarzanie = czyAutoOdtwarzanie === '' || czyAutoOdtwarzanie === 'autoplay' ? true : false,
czyZapetlenie = $this.get(0).getAttribute('loop'),
czyZapetlenie = czyZapetlenie === '' || czyZapetlenie === 'loop' ? true : false,
czyWsparcie = false;
if (typeof plikAudio === 'undefined') {
$this.find('source').each(function() {
plikAudio = $(this).attr('src');
if (typeof plikAudio !== 'undefined' && czyMoznaOdtworzycTyp(plikAudio)) {
czyWsparcie = true;
return false;
}
});
} else if (czyMoznaOdtworzycTyp(plikAudio)) czyWsparcie = true;
var odtwarzacz = $('<div class="' + parametry.przedrostekKlasy + '">' + (czyWsparcie ? $('<div>').append($this.eq(0).clone()).html() : '<embed src="' + plikAudio + '" width="0" height="0" volume="100" autostart="' + czyAutoOdtwarzanie.toString() + '" loop="' + czyZapetlenie.toString() + '" />') + '<div class="' + klasyCSS.odtworzPauza + '" title="' + parametry.tekstOdtworz + '"><a href="#">' + parametry.tekstOdtworz + '</a></div></div>'),
elementAudio = czyWsparcie ? odtwarzacz.find('audio') : odtwarzacz.find('embed'),
elementAudio = elementAudio.get(0);
if (czyWsparcie) {
odtwarzacz.find('audio').css({
'width': 0,
'height': 0,
'visibility': 'hidden'
});
odtwarzacz.append('<div class="' + klasyCSS.czas + ' ' + klasyCSS.czasBiezacy + '"></div><div class="' + klasyCSS.pasek + '"><div class="' + klasyCSS.pasekZaladowany + '"></div><div class="' + klasyCSS.pasekOdtworzony + '"></div></div><div class="' + klasyCSS.czas + ' ' + klasyCSS.czasCalkowity + '"></div><div class="' + klasyCSS.glosnosc + '"><div class="' + klasyCSS.przyciskGlosnosci + '" title="' + parametry.tekstGlosnosc + '"><a href="#">' + parametry.tekstGlosnosc + '</a></div><div class="' + klasyCSS.regulacjaGlosnosci + '"><div><div></div></div></div></div>');
var pasek = odtwarzacz.find('.' + klasyCSS.pasek),
pasekOdtworzony = odtwarzacz.find('.' + klasyCSS.pasekOdtworzony),
pasekZaladowany = odtwarzacz.find('.' + klasyCSS.pasekZaladowany),
czasBiezacy = odtwarzacz.find('.' + klasyCSS.czasBiezacy),
czasCalkowity = odtwarzacz.find('.' + klasyCSS.czasCalkowity),
przyciskGlosnosci = odtwarzacz.find('.' + klasyCSS.przyciskGlosnosci),
regulacjaGlosnosci = odtwarzacz.find('.' + klasyCSS.regulacjaGlosnosci + ' > div'),
domyslnaGlosnosc = 0,
ustawBiezacyCzas = function(e) {
prawdziweZdarzenie = czyDotyk ? e.originalEvent.touches[0] : e;
elementAudio.currentTime = Math.round((elementAudio.duration * (prawdziweZdarzenie.pageX - pasek.offset().left)) / pasek.width());
},
ustawGlosnosc = function(e) {
prawdziweZdarzenie = czyDotyk ? e.originalEvent.touches[0] : e;
elementAudio.volume = Math.abs((prawdziweZdarzenie.pageX - regulacjaGlosnosci.offset().left) / regulacjaGlosnosci.width());
},
aktualizujPasekZaladowany = setInterval(function() {
if (elementAudio.buffered.length > 0) {
pasekZaladowany.width((elementAudio.buffered.end(0) / elementAudio.duration) * 100 + '%');
if (elementAudio.buffered.end(0) >= elementAudio.duration)
clearInterval(aktualizujPasekZaladowany);
}
}, 100);
var testDomyslnejGlosnosci = elementAudio.volume,
testowaGlosnosc = elementAudio.volume = 0.111;
if (Math.round(elementAudio.volume * 1000) / 1000 == testowaGlosnosc) elementAudio.volume = testDomyslnejGlosnosci;
else odtwarzacz.addClass(klasyCSS.brakGlosnosci);
czasCalkowity.html('…');
czasBiezacy.text(sekundyNaCzas(0));
elementAudio.addEventListener('loadeddata', function() {
czasCalkowity.text(sekundyNaCzas(elementAudio.duration));
regulacjaGlosnosci.find('div').width(elementAudio.volume * 100 + '%');
domyslnaGlosnosc = elementAudio.volume;
});
elementAudio.addEventListener('timeupdate', function() {
czasBiezacy.text(sekundyNaCzas(elementAudio.currentTime));
pasekOdtworzony.width((elementAudio.currentTime / elementAudio.duration) * 100 + '%');
});
elementAudio.addEventListener('volumechange', function() {
regulacjaGlosnosci.find('div').width(elementAudio.volume * 100 + '%');
if (elementAudio.volume > 0 && odtwarzacz.hasClass(klasyCSS.wycisz)) odtwarzacz.removeClass(klasyCSS.wycisz);
if (elementAudio.volume <= 0 && !odtwarzacz.hasClass(klasyCSS.wycisz)) odtwarzacz.addClass(klasyCSS.wycisz);
});
elementAudio.addEventListener('ended', function() {
odtwarzacz.removeClass(klasyCSS.odtwarza);
});
pasek.on(zdarzenieStart, function(e) {
ustawBiezacyCzas(e);
pasek.on(zdarzenieRuch, function(e) {
ustawBiezacyCzas(e);
});
})
.on(zdarzenieAnulowanie, function() {
pasek.unbind(zdarzenieRuch);
});
przyciskGlosnosci.on('click', function() {
if (odtwarzacz.hasClass(klasyCSS.wycisz)) {
odtwarzacz.removeClass(klasyCSS.wycisz);
elementAudio.volume = domyslnaGlosnosc;
} else {
odtwarzacz.addClass(klasyCSS.wycisz);
domyslnaGlosnosc = elementAudio.volume;
elementAudio.volume = 0;
}
return false;
});
regulacjaGlosnosci.on(zdarzenieStart, function(e) {
ustawGlosnosc(e);
regulacjaGlosnosci.on(zdarzenieRuch, function(e) {
ustawGlosnosc(e);
});
})
.on(zdarzenieAnulowanie, function() {
regulacjaGlosnosci.unbind(zdarzenieRuch);
});
} else odtwarzacz.addClass(klasyCSS.mini);
if (czyAutoOdtwarzanie) odtwarzacz.addClass(klasyCSS.odtwarza);
odtwarzacz.find('.' + klasyCSS.odtworzPauza).on('click', function() {
if (odtwarzacz.hasClass(klasyCSS.odtwarza)) {
$(this).attr('title', parametry.tekstOdtworz).find('a').html(parametry.tekstOdtworz);
odtwarzacz.removeClass(klasyCSS.odtwarza);
czyWsparcie ? elementAudio.pause() : elementAudio.Stop();
} else {
$(this).attr('title', parametry.tekstPauza).find('a').html(parametry.tekstPauza);
odtwarzacz.addClass(klasyCSS.odtwarza);
czyWsparcie ? elementAudio.play() : elementAudio.Play();
// Pauzowanie innych elementów audio
var wszystkieAudio = $('audio').not(elementAudio);
wszystkieAudio.each(function(index, inneAudio) {
if (!inneAudio.paused) {
inneAudio.pause();
$(inneAudio).closest('.' + parametry.przedrostekKlasy).removeClass(klasyCSS.odtwarza);
}
});
}
return false;
});
$this.replaceWith(odtwarzacz);
});
return this;
};
})(jQuery, window, document);
jQuery(function() {
jQuery('audio').odtwarzaczAudio();
});
console.log("jestem tutaj");
ninja-audio-player.css
.odtwarzaczAudio {
display: flex;
flex-direction: row;
box-sizing: border-box;
margin: 0;
width: 100%;
padding: 7px 10px;
align-items: center;
border: none;
border-radius: 16px;
background: #000;
box-shadow: rgb(255 255 255 / 18%) 0px 1px 4px;
}
.odtwarzaczAudio a:hover, .odtwarzaczAudio a {
text-decoration: none;
box-shadow: none!important;
-webkit-box-shadow:none!important;
}
.odtwarzaczAudio-odtworzpauza {
display: flex;
justify-content: center;
align-items: center;
width: 20px;
height: 20px;
border-radius: 50%;
cursor: pointer;
transition: all .2s ease-in-out;
}
.odtwarzaczAudio:not(.odtwarzaczAudio-odtwarza) .odtwarzaczAudio-odtworzpauza {
background: rgba(91, 130, 255, 0);
border: 1px solid #d6382e;
}
.odtwarzaczAudio:not(.odtwarzaczAudio-odtwarza) .odtwarzaczAudio-odtworzpauza:hover {
background: rgba(91, 130, 255, 0.1);
}
.odtwarzaczAudio-odtwarza .odtwarzaczAudio-odtworzpauza {
background: rgba(253, 79, 26, 0);
border: 1px solid #d6382e;
}
.odtwarzaczAudio-odtwarza .odtwarzaczAudio-odtworzpauza:hover {
background: rgba(235, 79, 26, 0.1);
}
.odtwarzaczAudio:not(.odtwarzaczAudio-odtwarza) .odtwarzaczAudio-odtworzpauza a {
content: '';
justify-content: center;
width: 0;
height: 0;
margin-left: 2px;
border-top: 5px solid transparent;
border-right: none;
border-bottom: 5px solid transparent;
border-left: 10px solid #d6382e;
}
.odtwarzaczAudio-odtwarza .odtwarzaczAudio-odtworzpauza a {
content: '';
display: flex;
justify-content: space-between;
width: 12px;
height: 14px;
}
.odtwarzaczAudio-odtwarza .odtwarzaczAudio-odtworzpauza a::before, .odtwarzaczAudio-odtwarza .odtwarzaczAudio-odtworzpauza a::after {
content: '';
width: 4px;
height: 14px;
background-color: #d6382e;
}
.odtwarzaczAudio-czas {
display: flex;
width: 40px;
justify-content:center;
font-size: 12px;
color: rgba(51, 51 ,51, .6)
}
.odtwarzaczAudio-czas-biezacy {
margin-left: 24px;
}
.odtwarzaczAudio-czas-calkowity {
margin-right: 24px;
}
.odtwarzaczAudio-pasek {
position: relative;
display: flex;
margin: 0 12px;
height: 12px;
flex-basis: 0;
flex-grow: 1;
cursor: pointer;
}
.odtwarzaczAudio-pasek::before {
content: '';
position: absolute;
top: 5px;
width: 100%;
height: 2px;
background-color: #DDE2E6;
}
.odtwarzaczAudio-pasek > div {
position: absolute;
left: 0;
top: 5px;
}
.odtwarzaczAudio-pasek-zaladowany {
z-index: 1;
height: 2px;
background: #BEC8D2;
}
.odtwarzaczAudio-pasek-odtworzony {
flex-direction: row-reverse;
z-index: 2;
height: 2px;
background: #d6382e;
}
.odtwarzaczAudio-pasek-odtworzony::after {
display: flex;
position: absolute;
content: '';
box-sizing: border-box;
top: -5px;
right: -1px;
margin-right: -5px;
width: 12px;
height: 12px;
background-color: #fff;
border-radius: 6px;
}
.odtwarzaczAudio:not(.odtwarzaczAudio-odtwarza) .odtwarzaczAudio-pasek-odtworzony::after {
border: 2px solid #BEC8D2;
}
.odtwarzaczAudio-odtwarza .odtwarzaczAudio-pasek-odtworzony::after {
border: 2px solid #d6382e;
}
.odtwarzaczAudio-glosnosc {
display: flex;
align-items: center;
}
.odtwarzaczAudio-przycisk-glosnosci {
display: flex;
align-items: center;
width: 24px;
height: 24px;
cursor: pointer;
}
.odtwarzaczAudio-przycisk-glosnosci a {
display: flex;
width: 6px;
height: 8px;
background-color: #9A9FB0;
position: relative;
}
.odtwarzaczAudio-przycisk-glosnosci a:before, .odtwarzaczAudio-przycisk-glosnosci a:after {
content: '';
position: absolute;
}
.odtwarzaczAudio-przycisk-glosnosci a:before {
width: 0;
height: 0;
border-top: 8px solid transparent;
border-right: 9px solid #9A9FB0;
border-bottom: 8px solid transparent;
border-left: none;
top: -4px;
}
.odtwarzaczAudio:not(.odtwarzaczAudio-wycisz) .odtwarzaczAudio-przycisk-glosnosci a:after {
left: 10px;
top: 0px;
width: 6px;
height: 6px;
border: 6px double #9A9FB0;
border-width: 6px 6px 0 0;
border-radius: 0 12px 0 0;
transform: rotate(45deg);
}
.odtwarzaczAudio-wycisz .odtwarzaczAudio-przycisk-glosnosci a {
background-color: #d6382e;
}
.odtwarzaczAudio-wycisz .odtwarzaczAudio-przycisk-glosnosci a:before {
border-right: 9px solid #d6382e;
}
.odtwarzaczAudio-regulacja-glosnosci {
display: flex;
align-items: center;
margin-left: 8px;
}
.odtwarzaczAudio-regulacja-glosnosci > div {
position: relative;
display: flex;
width: 60px;
height: 2px;
cursor: pointer;
background-color: #BEC8D2;
}
.odtwarzaczAudio-regulacja-glosnosci div div {
position: absolute;
top: 0;
left: 0;
height: 2px;
background-color: #d6382e;
}
/* responsive | you can change the max-width value to match your theme */
@media screen and (max-width: 679px) {
.odtwarzaczAudio-regulacja-glosnosci {
display: none;
}
}
.wp-block-audio audio {
width: unset!important;
min-width: unset!important;
}
.odtwarzaczAudio-czas-biezacy, .odtwarzaczAudio-czas-calkowity {
display: none;
}