【发布时间】:2020-05-05 11:25:25
【问题描述】:
所以这是我第一次使用 JavaScript,我遇到了一些播放器的错误。除了一些 CSS 问题,目前只有两件事不起作用。首先,这篇文章的主要问题是当我换歌时播放/暂停按钮没有重置。要播放下一首歌曲,我必须双击,暂停播放并播放暂停(然后开始播放歌曲),自动播放下一首歌曲功能也不起作用,我猜是相关的?
第二个小问题是曲目名称没有改变。您可以看到的曲目的 HTML 行是
<div class="song-title">Track1</div>
const background = document.querySelector('#background');
const thumbnail = document.querySelector('#thumbnail');
const song = document.querySelector('#song');
const songArtist = document.querySelector('.song-artist');
const songTitle = document.querySelector('.song-title');
const progressBar = document.querySelector('#progress-bar');
let pPause = document.querySelector('#play-pause');
songIndex = 0;
songs = ['/music/track1.mp3', '/music/track2.mp3', '/music/track3.mp3', '/music/track4.mp3', '/music/track5.mp3', '/music/track6.mp3', '/music/track7.mp3'];
thumbnails = ['/images/J&G Logo.png', '/images/J&G Logo.png', '/images/J&G Logo.png', '/images/J&G Logo.png', '/images/J&G Logo.png', '/images/J&G Logo.png', '/images/J&G Logo.png', ];
songArtists = ['Jelly & The GOAT', 'Jelly & The GOAT', 'Jelly & The GOAT', 'Jelly & The GOAT', 'Jelly & The GOAT', 'Jelly & The GOAT', 'Jelly & The GOAT',];
songTitles = ["Track1", "Track2", "Track3", "Track4", "Track5", "Track6", "Track7"];
let playing = true;
function playPause() {
if (playing) {
const song = document.querySelector('#song'),
thumbnail = document.querySelector('#thumbnail');
pPause.src = "/images/pause-icon.png"
thumbnail.style.transform = "scale(1.15)";
song.play();
playing = false;
} else {
pPause.src = "/images/play-icon.png"
thumbnail.style.transform = "scale(1)";
song.pause();
playing = true;
}
}
song.addEventListener('ended', function(){
nextSong();
});
function nextSong() {
songIndex++;
if (songIndex === songs.length) {
songIndex = 0;
};
song.src = songs[songIndex];
thumbnail.src = thumbnails[songIndex];
background.src = thumbnails[songIndex];
songArtist.innerHTML = songArtists[songIndex];
songTitle.innerHTML = songTitles[songIndex];
playing = true;
playPause();
}
function previousSong() {
songIndex--;
if (songIndex < 0) {
songIndex = songs.length - 1;
};
song.src = songs[songIndex];
thumbnail.src = thumbnails[songIndex];
background.src = thumbnails[songIndex];
songArtist.innerHTML = songArtists[songIndex];
songTitle.innerHTML = songTitles[songIndex];
playing = true;
playPause();
}
function updateProgressValue() {
progressBar.max = song.duration;
progressBar.value = song.currentTime;
document.querySelector('.currentTime').innerHTML = (formatTime(Math.floor(song.currentTime)));
if (document.querySelector('.durationTime').innerHTML === "NaN:NaN") {
document.querySelector('.durationTime').innerHTML = "0:00";
} else {
document.querySelector('.durationTime').innerHTML = (formatTime(Math.floor(song.duration)));
}
};
function formatTime(seconds) {
let min = Math.floor((seconds / 60));
let sec = Math.floor(seconds - (min * 60));
if (sec < 10){
sec = `0${sec}`;
};
return `${min}:${sec}`;
};
setInterval (updateProgressValue, 500);
function changeProgressBar() {
song.currentTime = progressBar.value;
};
如果您需要任何 HTML,请告诉我。请注意,图标切换正常。感谢您的帮助,任何解释都将不胜感激:)!
【问题讨论】:
-
我还想对我的帖子提出任何建设性的批评,它的格式是否正确,我是否添加了正确的代码并以清晰的方式?我刚开始使用这个网站。
标签: javascript audio audio-player