【发布时间】:2013-05-08 17:14:40
【问题描述】:
我需要鼠标悬停事件的声音,我有这种方式,但它的问题来自鼠标悬停和声音播放之间的延迟,这是由于(我认为)代码上的嵌入声音处理。我想知道是否有更好的方法使用 js/jquery)。但不是我不想在这种特殊情况下实现的新 html5 音频标签。
一个 ajax 调用加载文件,然后我在 mouseOver 上附加了一个名为 playSound() 的函数
function playSound()
{
$setSound = document.getElementById("soundWrapper").innerHTML="<embed id='sound' src='href' type=audio/mpeg hidden=false autostart=true volume=12>";
}
然后在 mouseOut 事件中调用一个名为 stopSound() 的函数
function stopSound()
{
$stopSound = document.getElementById("soundWrapper").innerHTML="";
}
没什么花哨的,但它确实有效。所说的问题是播放声音的延迟。有没有办法播放/停止已经嵌入的声音,而不仅仅是每次都嵌入一个新的,或者类似的东西?
感谢您的时间和帮助。 问候。
【问题讨论】:
-
您是否考虑过使用
Audio对象?还是将 HTML5 音频元素插入 DOM? -
使用
<audio>元素并将其隐藏在页面上。当你想播放它的声音时,在它的元素引用上调用.play()。 developer.mozilla.org/en-US/docs/HTML/Element/audio
标签: javascript jquery audio mouseover