2012-08-08 200 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)