2017-06-17 20 views
1

嗨,我有一個歌曲列表,我用php抓取它們,我想把這個音頻傳遞給一個javascript函數。我目前正在使用這個功能的發揮,但是當我在循環,還有我的戲類不改變其他音頻單擊它不會暫停之前的音頻暫停時,我上的播放按鈕從php for loop播放音頻與javascript功能

function play(src){  
var myaudio = new Audio(src); 
var isPlaying = false; 
myaudio.loop = true; 
function play(){ 

if (isPlaying) { 
myaudio.pause() 

var target = document.getElementById("pl"); 
target.classList.toggle("fa-pause"); 
target.classList.toggle("fa-play"); 

} else { 
myaudio.play(); 
var target = document.getElementById("pl"); 
target.classList.toggle("fa-play"); 
target.classList.toggle("fa-pause"); 
} 

}; 

myaudio.onplaying = function() { 
isPlaying = true; 
}; 
myaudio.onpause = function() { 
isPlaying = false; 
}; 
}; 

這是點擊我的HTML和PHP

<?php 

         $count = 1; 
         $noarry = DataDB::getInstance()->get_rows_from_field('music','group_id',$value); 
         foreach($noarry as $row):?> 
      <ul id="insert_songMenu">  
       <li> 
        <div class="sort_num"><?php echo $count++;?>.</div> 
        <div class="song_name"> 
         <i class="noItalics"><?php echo $row['music_name'];?></i> 
         <span><?php echo $row['by'];?></span> 
        </div> 

        <div class="content_feature"> 
        <cite class="fa fa-play" onclick=play("user/<?php echo $usern.'/'.$row['snippet']; ?>")></cite> 

        </div> 
       </li> 

       <?php endforeach; ?>` 
+0

我應該* SRC *是什麼? –

+0

src是從onclick獲取的音頻目錄@Jonasw – nsikak

+0

做hv這樣做,不能使用音頻播放器嗎? –

回答

0

某處以上PHP

我想這應該能正常運行。 JS:

var song_list = {}; 
function play(src,self) { 
    for(song in song_list) 
    { 
     song_list[song].file.pause(); 
    } 
    var myaudio = song_list[src].file; 
    var isPlaying = song_list[src].isPlaying; 
    myaudio.loop = true; 



     if (isPlaying) { 
      myaudio.pause() 

      var target = self; 
      target.classList.toggle("fa-pause"); 
      target.classList.toggle("fa-play"); 

     } else { 
      myaudio.play(); 
      var target = self; 
      target.classList.toggle("fa-play"); 
      target.classList.toggle("fa-pause"); 
     } 



    myaudio.onplaying = function() { 
     song_list[src].isPlaying = true; 
    }; 
    myaudio.onpause = function() { 
     song_list[src].isPlaying = false; 
    }; 
}; 

PHP:

<?php 

$count = 1; 
$noarry = DataDB::getInstance()->get_rows_from_field('music', 'group_id', $value); 
foreach ($noarry as $row): 
?> 
      <ul id="insert_songMenu">  
       <li> 
        <div class="sort_num"><?php echo $count++; ?>.</div> 
        <div class="song_name"> 
         <i class="noItalics"><?php echo $row['music_name']; ?></i> 
         <span><?php echo $row['by']; ?></span> 
        </div> 

        <div class="content_feature"> 
        <cite class="fa fa-play" onclick=play("user/<?php echo $usern . '/' . $row['snippet']; ?>",this)></cite> 

        </div> 
       </li> 
      <script> 
      song_list["user/<?php echo $usern . '/' . $row['snippet']; ?>"] = { 
         file : new Audio("user/<?php echo $usern . '/' . $row['snippet']; ?>"), 
         isPlaying : false 
         }; 
      </script> 
       <?php 
endforeach; 
?> 

試試這個

+0

我仍然有同樣的問題 – nsikak

+0

好吧,有什麼問題嗎? –

+0

它仍然與新選擇的一起播放舊歌。所以有一種衝突的事情 – nsikak

0

,你可以簡單地停止以前:

var myaudio=null; 
function play(src){ 
    if(myaudio) myaudio.pause(); 
    myaudio = new Audio(src); 
    ... 
}