Sto provando a creare un lettore musicale personalizzato senza utilizzare il tag "controls" all'interno del tag audio. Prima di tutto, voglio creare qualcosa di simile a SCM Music Player. Non userò quello fornito da SCM, perché in qualche modo utilizza una grande quantità di spazio quando aggiunto al mio sito web, non ho capito come nasconderlo/mostrarlo dato che è tutto all'interno di un tag script, ed è davvero ha un impatto sulla velocità Y-Slow.Come creare un lettore musicale personalizzato basato su un tag audio con HTML, CSS e JS
Ecco un'immagine di quello che mi piacerebbe creare:
E questo è quello che ho finora: https://jsfiddle.net/e13gs8qg/6/(Aggiornato)
HTML: (Aggiornato)
<audio id="player" class="mediaplayerclass">
<source title="Fruity Loops Own Track Copy" src="https://cdn.shopify.com/s/files/1/0804/2449/files/fruityloops_own_track_copy.mp3" />
<source title="Fruity Loops Own Track Copy 2" src="https://cdn.shopify.com/s/files/1/0804/2449/files/fruityloops_own_track_copy_2.mp3" />
</audio>
<div class="playermenuwrapper">
<button id="previoussong" class="previoussongclass">
Previous
</button>
<button id="playpause" class="playpauseclass">
play
</button>
<button id="nextsong" class="nextsongclass">
Next
</button>
<div id="songtitle" class="titleclass"></div>
</div>
CSS:
.playermenuwrapper {
text-align:center;
margin: 0px auto;
max-width:100%;
}
.previoussongclass {
display:inline-block;
width:80px;
}
.playpauseclass {
display:inline-block;
width:80px;
}
.nextsongclass {
display:inline-block;
width:80px;
}
.mediaplayerclass {
display:block;
width:150px;
height:50px;
margin: 0px auto;
}
.titleclass {
display:inline-block;
text-align:center;
margin: 0px auto;
width:250px;
}
JS: (Aggiornato)
window.player = document.getElementById('player');
var playpause = document.getElementById('playpause');
var songtitle = document.getElementById('songtitle');
changesongtitle();
player.volume = 0.3;
playpause.onclick = function() {
if (player.paused) {
changesongtitle();
player.play();
playpause.innerHTML = 'pause';
} else {
player.pause();
playpause.innerHTML = 'play';
changesongtitle();
}
}
function changesongtitle() {
var songtitle = document.getElementById('songtitle');
if(player.src = "https://cdn.shopify.com/s/files/1/0804/2449/files/fruityloops_own_track_copy.mp3") {
songtitle.innerHTML = "Fruity Loops Own Track Copy";
}
if(player.src = "https://cdn.shopify.com/s/files/1/0804/2449/files/fruityloops_own_track_copy_2.mp3") {
songtitle.innerHTML = "Fruity Loops Own Track Copy 2";
}
}
Ho guardato molte domande su StackOverflow su questo, ma ancora non hanno trovato risposte a quello che sto cercando di fare.
Come posso recuperare il titolo del file sorgente di riproduzione?(Aggiornato)Come posso codificare i tasti "destra" e "sinistra" e di modificare i file di origine?
Come posso creare un dispositivo di scorrimento del volume?
Come è possibile creare una linea temporale della durata corrente dell'audio in riproduzione?
Infine, come posso visualizzare l'ora corrente e l'intera durata dell'audio riprodotto?
Come utilizzare le proprietà currentTime e durata in questo.
Ciao, @hkasera, il sito html5rock mi ha mostrato un messaggio che indica che il mio browser (IE 11) non è supportato ... Ho scaricato la cartella mediaelement, ma non sono sicuro di cosa fare ora. Dovrei caricare l'intera cartella sul mio server? Inoltre, come per il sito html5doctor, ho visto alcuni eventi interessanti chiamati durationchange, timeupdate, volumechange e progress. Ti dispiacerebbe mostrarmi un semplice esempio di loro in azione? –
Aggiunto un altro link utile che può spiegarti un po 'di più. https://developer.mozilla.org/en-US/Apps/Build/Audio_and_video_delivery/Cross-browser_audio_basics – hkasera
Grazie, ho avuto un'idea di come fare alcune delle cose ora. Ad esempio, myAudio.addEventListener ("durationchange", function() { // è possibile visualizzare la durata ora }) ;. Tornerò da te sui miei progressi quando posso provarlo (è necessario uscire un paio d'ore). –