我正在使用 php 和 javascript 创建一个在线音乐播放器,但我想不出处理问题的最佳方法。我创建了一个 MySQL 数据库,其中包含歌曲的名称、艺术家、专辑等。
我从页面上显示的 MySQL db 生成的 XML 文件创建了一个播放列表,我无法获得的唯一功能是当我单击歌曲时让歌曲的名称出现在“正在播放”横幅中从播放列表。
我想我需要某种“onClick”功能,但我不知道我需要做什么。另外,我显然不想为了播放一首新歌而刷新页面。
谢谢你的帮助!
我的播放器的基本代码如下。实际播放器使用自定义界面和 XML 播放列表,但基本上就是这样。我只需要弄清楚如何创建“正在播放”功能。谢谢!
<html>
<head>
<script type="text/javascript">
function loadPlayer() {
var audioPlayer = new Audio();
audioPlayer.controls="controls";
audioPlayer.addEventListener('ended',nextSong,false);
audioPlayer.addEventListener('error',errorFallback,true);
document.getElementById("player").appendChild(audioPlayer);
nextSong();
}
function nextSong() {
if(urls[next]!=undefined) {
var audioPlayer = document.getElementsByTagName('audio')[0];
if(audioPlayer!=undefined) {
audioPlayer.src=urls[next];
audioPlayer.load();
audioPlayer.play();
next++;
} else {
loadPlayer();
}
} else {
alert('the end!');
}
}
function errorFallback() {
nextSong();
}
function playPause() {
var audioPlayer = document.getElementsByTagName('audio')[0];
if(audioPlayer!=undefined) {
if (audioPlayer.paused) {
audioPlayer.play();
} else {
audioPlayer.pause();
}
} else {
loadPlayer();
}
}
function pickSong(num) {
next = num;
nextSong();
}
var urls = new Array();
urls[0] = '/testphp/upload/Sleep Away.mp3';
urls[1] = '/testphp/upload/Kalimba.mp3';
urls[2] = '/testphp/upload/Sleep Away.mp3';
urls[3] = '/testphp/upload/Kalimba.mp3';
var next = 0;
</script>
</head>
<body>
<div id="player"></div>
<a href="#" onclick="playPause()">Play / Pause!</a> |
<a href="#" onclick="nextSong()">Next!</a><br><br>
<a href="#" onclick="pickSong(0)">Sample 1</a><br>
<a href="#" onclick="pickSong(1)">Sample 2</a><br>
<a href="#" onclick="pickSong(2)">Missing File</a><br>
<a href="#" onclick="pickSong(3)">Sample 3</a>
</body>
</html>