2010-04-09 51 views

回答

1

浏览器对声音的支持非常差,所以大部分时间只是为了使声音成为可能。我会建议寻找一个MP3播放器,让您建立自己的HTML界面。在这种情况下,你可以使用JS调用玩家的不同部分。然后,您需要为每个键设置一个mp3文件,并在单击某个键时播放正确的文件。这种工具的核心虽然是一个在背景中运行的闪存组件,可以播放声音,但不必使用闪存显示任何内容。

我建议使用jPlayer:

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

2

SoundManager2是构建JavaScript接口与声音的好工具。

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

+0

浏览器与HTML 5的支持也可能通过音频元素原生的声音,和Firefox,Safari和其他人已经支持它,虽然它不会无疑需要一段时间的用户群都沾到这些当前的浏览器。 – 2010-04-09 18:24:16

0

事情是这样的:

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

在IE浏览器只能如果Windows Media Player是设置为wav文件的默认播放器。

正如其他人所说的,没有好的方法可以做到这一点,即跨浏览器兼容,无论设置什么媒体播放器播放wav文件都可以工作。 Flash是一个更好的解决方案。

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

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函数。