我的音频播放器出现了问题(http://www.vegapohl.com/audio)。我试图让播放器从mysql数据库中播放一个随机曲目,但我不希望它播放以前的歌曲。只有在收听或跳过所有歌曲后,才应“重置”并再次播放所有曲目。
这是我的PHP:
<?php
mysql_connect("localhost", "db57276_11", "*****")or die("cannot connect");
mysql_select_db(db57276_11)or die("cannot select DB");
$sql = "SELECT * FROM audio ORDER BY RAND()";
$result = mysql_query($sql);
if (false === $result) {
echo mysql_error();
}
$row = mysql_fetch_row($result);
$url = $row[0];
$title = $row[1];
$artist = $row[2];
$albumart = $row[3];
?>
我在stackoverflow上找到了类似问题的一些答案,但没有一个对我有用。为了更好地了解一般功能,这里是正文标记:
<body>
<script type="text/javascript">
function playPause(soundId,getImg) {
setTimeout(swapImg,30000,getImg);
soundId.volume=.5;
if (soundId.paused){
soundId.play();
getImg.src='pause.png';
}
else {
soundId.pause();
getImg.src='play.png';
}
}
function swapImg(getImg){
getImg.src='play.png';
}
</script>
<div class="wrapper">
<div class="wrapmiddle">
<div class="middle">
<div class="track">
<h1><?php echo $title; ?></h1>
<h2><?php echo $artist; ?></h2>
<div id="buttons">
<a href="javascript:window.location.reload()" class="next">Skip</a>
<a href="#"class="like">Share</a><a href="#" class="view">Visit Site</a>
</div>
</div>
</div>
</div>
<div class="left">
<div>
<audio id="track1" onended = "window.location.reload()">
<source src="<?php echo $url; ?>" type="audio/mp3"></source>
Your browser does not support this content.</audio>
<a href="#" onClick="playPause(track1,playImg1);">
<img alt="" class="playImg" src="play.png" style="cursor: pointer;" name="playImg1" />
</a><br />
</div>
</div>
<div class="right">
<div class="overlay"><img src="icon.png" width="35" height="34" /> </div>
</div>
</div>
</body>
也许有人知道更好的方式来播放下一首曲目(而不是刷新页面/ iframe)。如果它可以按顺序播放表格中的每个曲目,然后再次从顶部开始也可以。希望有人能帮助我。
答案 0 :(得分:1)
在SQL表中添加一个额外的smallint字段,类似于status
。在该商店中,1或0(或您设计的其他内容)表示未播放/未播放,或播放/跳过。在SQL查询中,沿SELECT songname,artist,filelocation,status FROM audio WHERE status=0 ORDER BY rand()
答案 1 :(得分:0)
在第一个请求中获取随机播放列表,并在整个访问过程中使用它。
如果您希望此类播放列表在页面重新加载之间保留,请将其存储在$_SESSION
。