【发布时间】:2011-04-12 14:05:40
【问题描述】:
如何在网络浏览器上播放声音作为通知?
【问题讨论】:
-
请不要! ;-)
-
啊,很常见,asjie 确实将其范围缩小到“通知”,所以我希望“砰砰!”因为我的文件没有上传什么的......
标签: html browser webclient frontend
如何在网络浏览器上播放声音作为通知?
【问题讨论】:
标签: html browser webclient frontend
您可以使用<audio> 标记结合JavaScript 在给定时间播放声音。当然,您需要 JavaScript,因为它是在前端完成的,因此需要客户端编程。
例如,
<audio style="display: none;" id="notification" preload src="path/to/soundfile">
然后,对于脚本,将其放置在脚本中需要发出声音通知的任何部分:
document.getElementById('notification').play();
对于那些推荐 Flash 因为它在 IE 中受支持的人,请注意优雅降级,对于非必要的事情(例如声音通知),我们选择使用适用于大多数情况的新推荐技术浏览器,而不是使用 hackish、不安全的方法来尝试让所有浏览器工作。
【讨论】:
使用 HTML5,您可以使用一些 javascript 和 <audio>-tag。
我的网站上有一个示例: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>-script 之前使用它:)
Cross-platform, cross-browser way to play sound from Javascript?
【讨论】:
由于音频标签不规范,我建议使用“传统”方式来处理。
这是另一个处理它的 SO 帖子:
Cross-platform, cross-browser way to play sound from Javascript?
【讨论】:
您还可以嵌入一个 Flash 小部件,该小部件可以同时执行各种其他有用的操作,包括跟踪用户触发声音提示的次数,或提供一个界面来禁用此类听觉提示。使用 Flash 还可以为您提供流式传输功能和 Flash cookie 本地数据存储。
【讨论】:
虽然您可以使用音频标签来做到这一点,但它在不支持 HTML5 的浏览器中不起作用。最简单的方法是使用...
<embed src="1.mp3" width="200" height="55" autostart="true" loop="true" style="visibility:none; position:fixed;">
这使用默认播放器。例如:Windows 中的媒体播放器。
但标准方法是使用闪存
教程可以在here找到。
这也适用于所有网络浏览器 IE4 +、Firefox(all)、Chrome...并且不依赖于 HTML 5 或 Flash,并使用始终存在的默认播放器。
注: EMBED 标签不是 HTML 4 或 xHTML 1 规范的一部分,但它仍然被现代浏览器广泛支持。与其他标签不同,EMBED 标签使用的属性取决于所使用的插件类型(这个奇怪的免费属性概念是 EMBED 标签被 HTML 标准制定者拒绝的原因)。
但这解决了问题:)
【讨论】: