2011-09-04 107 views
2

伙计们,我试图在鼠标悬停在按钮上时播放声音。我尝试阅读谷底的例子,但它似乎并没有工作。这是我现在的代码:使用JavaScript在mouseover上播放声音

<audio id="mySoundClip"> 
    <source src="/sound/c_but.mp3" type="audio/mp3" /> 
</audio> 
<script type="text/javascript"> 
    var mysound = document.getElementById("mySoundClip"); 
</script> 
<div class="whole"> 
<div id="social"> 
    <a href="#"><img name="faceb" src="img/social/up_fb.png" width="40" onMouseOver="faceb.src='img/social/o_fb.png'; mysound.play();" onMouseOut="faceb.src='img/social/up_fb.png'" class="soc"/></a> 
    <a href="#"><img name="goobu" src="img/social/up_gb.png" width="40" onMouseOver="goobu.src='img/social/o_gb.png'" onMouseOut="goobu.src='img/social/up_gb.png'" class="soc"/></a> 
    <a href="#"><img name="myspa" src="img/social/up_ms.png" width="40" onMouseOver="myspa.src='img/social/o_ms.png'" onMouseOut="myspa.src='img/social/up_ms.png'" class="soc"/></a> 
    <a href="#"><img name="twitt" src="img/social/up_tw.png" width="40" onMouseOver="twitt.src='img/social/o_tw.png'" onMouseOut="twitt.src='img/social/up_tw.png'" class="soc"/></a> 
</div> 
</div> 

正如你所看到的,将鼠标悬停在第一幅图片 - Facebook的链接应该引起我的声音..但事实并非如此。这是我的链接http://work.juanalvarezdj.com你能帮忙吗?我究竟做错了什么?

+0

它在Chrome中适用于我。 – bjornd

+0

这个问题是密切相关的:http://stackoverflow.com/questions/3013883/play-audio-file-on-hover –

回答

3

Firefox目前不支持您想要的AUDIO标签。来自MDN:

注:目前,Gecko仅支持Ogg容器中的Vorbis以及WAV格式。此外,服务器必须使用正确的MIME类型来提供文件,以便Gecko正确播放它。

https://developer.mozilla.org/en/HTML/Element/audio

http://html5doctor.com/native-audio-in-the-browser/

,使其在Firefox浏览器,你可以发现Firefox和切换文件类型的OGG或者WAV文件格式,它会奏效。我建议看一下音频库。

http://www.jplayer.org/

+0

那么围绕这个有什么办法? – DreamWave

+1

我会使用支持Flash作为后备的库。正如该链接讨论的那样,jPlayer是一个选项。 http://www.jplayer.org/ –

+1

实际上,另一个选项可能是在Firefox的OGG中有两个文件,一个MP3和另一个文件。看到这里:http://jfcoder.com/test/soundplay.html –

1

您是否已经使用萤火虫检查脚本执行了?

只是一个猜测,但你的处理函数说:

faceb.src='img/social/o_fb.png'; 

也许变量“faceb”在这方面不存在,你应该dcument.getElmentById抢元素的例子。 如果这应该是这种情况,当然会引发异常并且不执行第二个命令(mysound.play())。

+0

FireFox错误控制台说:mysound.play()不是一个功能 – DreamWave

+0

是的,忘掉我的第一个当然,这个变量是由name属性定义的。 这可能是缺乏html5支持?音频元素是HTML 5的新功能,而不是每个浏览器的标准功能。谷歌浏览器运行良好,就像bjornd说的。 –

+0

那么有什么办法呢? – DreamWave

1

我在http://geneinhell.tripod.com/webonmediacontents/geneinhell.html找到了一个例子。

将鼠标指针放在图像上时,会播放一个mp3文件。

只需在页面上单击右键并选择“查看源代码”,即可查看用于实现该代码的代码。

+0

上述页面适用于Firefox(Mac),Safari(Mac),Opera(Mac)和Internet Explorer(在我的Mac上的虚拟机上运行的Windows XP)。 – Les