0

オーディオプレーヤーに問題があります(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を更新する代わりに)次のトラックを再生するためのより良い方法を誰かが知っているかもしれません。テーブル内の各トラックを順番に再生してから、上からやり直すことができれば、それも機能します。誰かがこれで私を助けてくれることを願っています。

4

2 に答える 2

1

SQLテーブルに、のようなsmallintフィールドを追加しますstatus。そのストアでは、1または0(またはあなたが考案した何か)は、再生されていない/スキップされていない、または再生されている/スキップされていることを意味します。SQLクエリで、次の行に沿ってwhere句を追加します。SELECT songname,artist,filelocation,status FROM audio WHERE status=0 ORDER BY rand()

于 2012-11-08T13:34:52.087 に答える
0

最初のリクエストでランダムなプレイリストを取得し、訪問中ずっと使用します。

このようなプレイリストをページの再読み込みの間も保持したい場合は、に保存してください$_SESSION

于 2012-11-08T13:15:34.737 に答える