2012-08-08 168 views
2

我想要點擊圖像鏈接時播放的曲目,並且當我再次單擊它時停止播放。 我沒有使用HTML5,我沒有使用音頻標籤,並且我不想在曲目播放時顯示任何播放器。 這應該是儘可能跨瀏覽器...使用javascript播放音頻(無HTML5或可見播放器)

我點擊,我聽到的軌道,我再次點擊,它停止。

夠簡單但太簡單我猜是因爲我發現每篇教程都涉及到HTML5及其新標籤或Flash或一些我不需要的彩色播放器。

我該怎麼做到這一點? 純JavaScript或JQuery是好的。

我預先感謝您對您幫助

+0

我甚至沒有看過它,因爲壞的舊時代,但也許嘗試添加/刪除'bgsound'屬性爲''與JavaScript。請查看http://stackoverflow.com/questions/6426368/best-way-to-embed-audio-in-a-的「<! - [if lt IE 9]>」塊,網頁 – 2012-08-08 20:38:16

+0

HTML5'音頻'元素不需要是可見的播放器;它可以完全在後臺播放。 – 2012-08-08 20:44:08

+0

@Tom Terrance:我會盡力的,謝謝。傑弗里斯威尼:從來沒有說過,但感謝你的信息。 – Baylock 2012-08-08 21:49:19

回答

4

我會建議SoundManager2實現這一點 - 它重量很輕,並採取了很多的痛苦了跨瀏覽器的聲音。

+0

謝謝。嘗試這一個,但出於某種原因,這是行不通的。在一個簡單的頁面上,它工作得很好,但是我的頁面通過AJAX包含在內,而SM2似乎並不喜歡它。每個音樂鏈接都會在新網頁上打開媒體。 – Baylock 2012-08-08 21:42:26

2

您爲什麼不使用HTML5音頻標籤有特殊原因嗎?因爲你可以設置爲不顯示控制,並使用相同的JavaScript來播放/停止,如果你想要從切換播放圖像到停止。 使用jQuery:

你有這樣的形象:

<a href="#" id="audioPlayStop" title="stop"> 
    <img src="images/stop.png" /> 
</a> 

,這無形音頻標籤:

<audio id="audio"> 
<source src="somethingtoplay.mp3" type="audio/mpeg" /> 
</audio> 

var audio = document.getElementById('audio'); // $('#audio') won't work for audio API! 
    $('#audioPlayStop').toggle( 

     function() { 


      $(this).attr('title', 'play'); 
      $(this).add('img').attr('src', 'images/play.png'); 

      audio.pause(); 

      console.log('Paused'); 
     }, 
     function() { 
      $(this).attr('title', 'stop'); 
      $(this).add('img').attr('src', 'images/stop.png'); 

      audio.play();   

      console.log('Play started'); 
     } //function 
    ); 

這個腳本實際上暫停而不是停止。但你可以知道如何停止它知道你可以停止它與 audio.src =''; audio.load(); //沒有任何東西,所以它停止(沒有停止()在音頻API)