你如何在网络浏览器上播放声音?

时间:2010-09-15 09:11:10

标签: html browser webclient frontend

如何在网络浏览器上播放声音作为通知?

5 个答案:

答案 0 :(得分:6)

您可以使用<audio>标记结合JavaScript在给定时间播放声音。当然,你需要JavaScript,因为它是在前端完成的,因此也需要客户端编程。

例如,

<audio style="display: none;" id="notification" preload src="path/to/soundfile">

然后,对于脚本,将其放在脚本的任何需要声音通知的部分中:

document.getElementById('notification').play();

对于那些推荐在IE中支持Flash的用户,请注意优雅降级,其中,对于非必要的内容(例如声音通知),我们选择使用最适用的新推荐技术浏览器,而不是使用hackish,不安全的方法来尝试让所有浏览器工作。

答案 1 :(得分:1)

使用HTML5,您可以使用一些javascript和<audio> - 标记。

我的网站上有一个示例:http://www.khaaaaan.com

javascript:

<script type="text/javascript">
function soundPlay(which)
{
    var audio = document.getElementById(which);
    audio.play();
}
</script>

激活声音的按钮:

<input type="button" class="khaaaaan" onclick="soundPlay('khaaaaan');" Text="KHAAAAAN!" title="CLICK MEEEEEEEEE!" />

然后是音频标签

<audio src="khaaaaan.wav" autobuffer="autobuffer" id="khaaaaan" />

这也有效(在<audio> - 脚本之前使用它:)

Cross-platform, cross-browser way to play sound from Javascript?

答案 2 :(得分:1)

由于音频标签不是规范性的,我建议使用“传统”处理方式。

这是另一个涉及它的SO帖子:

Cross-platform, cross-browser way to play sound from Javascript?

答案 3 :(得分:0)

虽然您可以使用音频标记,但它不适用于不支持HTML5的浏览器。最简单的方法是使用......

<embed src="1.mp3" width="200" height="55" autostart="true" loop="true" style="visibility:none; position:fixed;">

这使用默认播放器。例如:Windows中的媒体播放器。

但标准方法是使用闪光灯

可以找到一个教程here

这也适用于所有网络浏览器IE4 +,Firefox(全部),Chrome ...并且不依赖于HTML 5或Flash,并且使用始终存在的默认播放器。

N.B: EMBED标记不是HTML 4或xHTML 1规范的一部分,但它仍然得到现代浏览器的广泛支持。与其他标签不同,EMBED标签使用的属性取决于所使用的插件类型(这种奇怪的自由属性概念是HTML标准制定者拒绝EMBED标签的原因)。

但这解决了问题:)

答案 4 :(得分:0)

您还可以嵌入Flash小部件,它可以同时执行各种其他有用的操作,包括跟踪用户触发声音提示的次数,或提供禁用此类听觉提示的界面。使用Flash还可以为您提供流功能和闪存cookie本地数据存储。