使用 HTML5 音频的按钮悬停声音

发布于 2024-10-21 10:53:07 字数 256 浏览 3 评论 0原文

当用户将鼠标悬停在我的列表项按钮之一上时,是否可以使用 HTML5 发出声音?当用户将鼠标悬停在导航按钮上时,我想播放一次非常短的点击/鸣叫声。我意识到它不会在每个浏览器或设备上兼容,只要它能够正常降级就可以了。出于某种原因,使用 Flash 会更好吗?

编辑
另外,如果可以做到这一点,我会对一些示例代码感兴趣,包括 javascript(如果需要 javascript)。我对 HTML 很熟悉,但对 Javascript 不太好用。

Is it possible to use HTML5 to make a sound when a user hovers over one of my list item buttons? I'd like to play a very short click/chirp sound one time when a user hovers over a navigation button. I realize it won't be compatible on every browser or device and that's OK as long as it degrades gracefully. Would it be better to use Flash for this for some reason?

Edit
Also, if it's possible to do this I'd be interested in some sample code, including the javascript (if javascript is needed). I'm OK with HTML but not too handy with Javascript.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拍不死你 2024-10-28 10:53:07

我没有做过这样的事情,但应该是可能的。例如,

<audio id="myaudio" src="myaudio.mp3"></audio>

<button onmouseover="document.getElementById('myaudio').play()">Hover me</button>

我对 Flash 不熟悉,所以我不确定是否可以使用 JavaScript 来播放 Flash 文件。

I’ve not done anything like this, but it should be possible. E.g.

<audio id="myaudio" src="myaudio.mp3"></audio>

<button onmouseover="document.getElementById('myaudio').play()">Hover me</button>

I’m not familiar with Flash, so I’m not sure if you can use JavaScript to get a Flash file to play.

等数载,海棠开 2024-10-28 10:53:07

这是一个古老的答案,现在你真的可以使用 HTML5 了。


我不建议悬停时发出声音。用户很容易生气(我会的)。

无论如何,方法如下,它不需要 HTML5

1) 使用简单的 javascript 来播放声音

<script>
    function EvalSound(soundobj) {
        var thissound=document.getElementById(soundobj);
        try {
            thissound.Play(); //Quicktime, Windows Media Player, etc.
        }
        catch (e) {
            thissound.DoPlay(); //Real Player
        }
    }
</script>

2) 使用声音进行不可见的嵌入

<embed src="mysound.wav" 
       autostart=false 
       width=0 
       height=0 
       id="mySound" 
       enablejavascript="true" />

3)使其在悬停时播放

<ul id="myList">
    <li onHover="EvalSound('mySound')">Foo</li>
    <li onHover="EvalSound('mySound')">Bar</li>
</ul>

或者,使用 jQuery 附加事件:

<script>
    $(document).ready(function() {
        $('#myList').hover(EvalSound('mySound'));
    });
</script>

Edited 因为 realplayer 使用 DoPlay() 而不是 Play()

This is an old answer, nowdays you can just use HTML5 really.


I'd not recommend a sound on a hover. Users can get annoyed very easily (I would).

In any case, here's how, and it doesn't need HTML5:

1) Have a simple javascript to play the sound

<script>
    function EvalSound(soundobj) {
        var thissound=document.getElementById(soundobj);
        try {
            thissound.Play(); //Quicktime, Windows Media Player, etc.
        }
        catch (e) {
            thissound.DoPlay(); //Real Player
        }
    }
</script>

2) Make an invisible embed with the sound

<embed src="mysound.wav" 
       autostart=false 
       width=0 
       height=0 
       id="mySound" 
       enablejavascript="true" />

3) Make it play on hover

<ul id="myList">
    <li onHover="EvalSound('mySound')">Foo</li>
    <li onHover="EvalSound('mySound')">Bar</li>
</ul>

Alternatively, attach event with jQuery:

<script>
    $(document).ready(function() {
        $('#myList').hover(EvalSound('mySound'));
    });
</script>

Edited because realplayer uses DoPlay() instead of Play().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文