我有一个客户要求将钢琴键作为链接,并且当鼠标悬停在键上时,他希望它们发出声音。如何在不使用闪光灯的情况下完成这项工作?
答案 0 :(得分:2)
SoundManager2是一个用声音构建Javascript接口的好工具。
请注意,浏览器不提供原生声音支持 - 这种功能只能通过插件获得。因此,SoundManager2的工作方式(或我猜的任何Javascript声音库)是通过在页面上创建一个不可见的Flash对象并将其用作桥梁。
答案 1 :(得分:1)
浏览器对声音的支持非常差,因此大多数时候闪光灯只用于使声音成为可能。我建议寻找一个允许你建立自己的HTML界面的MP3播放器。在这样的情况下,您可以使用JS调用播放器的不同部分。然后你需要为每个键都有一个mp3文件,并在点击一个键时播放正确的一个。这种工具的核心虽然是在后台运行的闪光组件来播放声音,但你不必使用闪光灯显示任何东西。
我建议使用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函数。