Próbuję utworzyć niestandardowy odtwarzacz muzyki bez użycia znacznika "controls" w znaczniku audio. Przede wszystkim chcę stworzyć coś podobnego do SCM Music Player. Nie użyję tego dostarczonego przez SCM, ponieważ w jakiś sposób wykorzystuje dużą ilość miejsca po dodaniu do mojej witryny, nie wymyśliłem, jak to ukryć/pokazać, ponieważ wszystko jest w tagu skryptu, i to naprawdę ma wpływ na prędkość Y-Slow.Tworzenie niestandardowego odtwarzacza muzycznego opartego na znaczniku dźwiękowym za pomocą HTML, CSS i JS
Oto obraz tego, co chciałbym utworzyć:
I to jest to, co mam do tej pory: https://jsfiddle.net/e13gs8qg/6/(Aktualizacja)
HTML: (Aktualizacja)
<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: (Aktualizacja)
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";
}
}
Mam spojrzał na wiele pytań na StackOverflow na ten temat, ale nadal nie znalazłem odpowiedzi na to, co usiłuję zrobić.
Jak mogę odzyskać tytuł pliku źródłowego gry?(Aktualizacja)Jak mogę kodować „w lewo” i „prawo” przycisków, aby zmienić pliki źródłowe?
Jak utworzyć suwak głośności?
Jak utworzyć oś czasu dla bieżącego czasu trwania odtwarzanego dźwięku?
Wreszcie, jak mogę wyświetlić aktualny czas i pełny czas odtwarzanego dźwięku?
Sposób korzystania z właściwości currentTime i duration w tym zakresie.
Witam, @hkasera, strona html5rock pokazał mi komunikat informujący, że moja przeglądarka (IE 11) nie jest obsługiwany ... Pobrałem folder mediaelement, ale nie jestem pewien, co teraz zrobić. Czy powinienem przesłać cały folder na mój serwer? Ponadto, jak na stronie html5doctor, zobaczyłem kilka interesujących wydarzeń zwanych durationchange, timeupdate, volumechange i progress. Czy mógłbyś pokazać mi prosty przykład ich działania? –
Dodano jeszcze jeden przydatny link, który może ci wyjaśnić nieco więcej. https://developer.mozilla.org/en-US/Apps/Build/Audio_and_video_delivery/Cross-browser_audio_basics – hkasera
Dzięki, mam pomysł, jak zrobić niektóre rzeczy teraz. Na przykład myAudio.addEventListener ("durationchange", function() { // możesz wyświetlić czas trwania teraz }) ;. Wrócę do ciebie na temat moich postępów, kiedy będę mógł to wypróbować (muszę wyjść na kilka godzin). –