如何将鼠标悬停在链接上产生声音

时间:2010-04-09 18:00:26

标签: javascript html

我有一个客户要求将钢琴键作为链接,并且当鼠标悬停在键上时,他希望它们发出声音。如何在不使用闪光灯的情况下完成这项工作?

4 个答案:

答案 0 :(得分:2)

SoundManager2是一个用声音构建Javascript接口的好工具。

请注意,浏览器不提供原生声音支持 - 这种功能只能通过插件获得。因此,SoundManager2的工作方式(或我猜的任何Javascript声音库)是通过在页面上创建一个不可见的Flash对象并将其用作桥梁。

答案 1 :(得分:1)

浏览器对声音的支持非常差,因此大多数时候闪光灯只用于使声音成为可能。我建议寻找一个允许你建立自己的HTML界面的MP3播放器。在这样的情况下,您可以使用JS调用播放器的不同部分。然后你需要为每个键都有一个mp3文件,并在点击一个键时播放正确的一个。这种工具的核心虽然是在后台运行的闪光组件来播放声音,但你不必使用闪光灯显示任何东西。

我建议使用jPlayer:

http://plugins.jquery.com/project/jPlayer

答案 2 :(得分:0)

这样的事情:

<img src="key.gif" onMouseOver="javascript:document.awav.play();">
<embed src="a.wav" hidden=true autostart=false name="awav" mastersound>

仅当Windows Media Player被设置为wav文件的默认播放器时才能在IE上使用。

正如其他人所提到的那样,没有好的方法可以实现跨浏览器兼容,并且无论设置什么媒体播放器来播放wav文件都能正常工作。 Flash是一种更好的解决方案。

但是,你问了一个javascript解决方案,所以这就是我给的。

答案 3 :(得分:0)

您可以使用soundmanager2。 Soundmanager负责跨浏览器兼容性问题,各种声音格式问题。

<script src="soundmanager2.js"></script>
<script>
  function onReadyFunc()
  {
    var soundFile = {};
    soundFile.id = 'aSound';
    soundFile.url = '/tech/js/sound/s.mp3';
    var mySound = soundManager.createSound(soundFile);
    return mySound;
  }
  soundManager.url = '/tech/js/sound/';
  mySound = soundManager.onready(onReadyFunc);

  function onHover(){ mySound.play() };

在onMouseover事件上调用ohHover函数。