【问题标题】:How do you play a sound on the web browser?你如何在网络浏览器上播放声音?
【发布时间】:2011-04-12 14:05:40
【问题描述】:

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

【问题讨论】:

  • 请不要! ;-)
  • 啊,很常见,asjie 确实将其范围缩小到“通​​知”,所以我希望“砰砰!”因为我的文件没有上传什么的......

标签: html browser webclient frontend


【解决方案1】:

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

例如,

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

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

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

对于那些推荐 Flash 因为它在 IE 中受支持的人,请注意优雅降级,对于非必要的事情(例如声音通知),我们选择使用适用于大多数情况的新推荐技术浏览器,而不是使用 hackish、不安全的方法来尝试让所有浏览器工作。

【讨论】:

  • 缺乏 IE 支持远没有必须使用 Flash 那样糟糕。
  • 如果大多数 OP 付费 用户是 IE 用户,那么这个论点就不会成立。 :-)
  • 编辑了我的答案以说明这一点;请立即查看。
【解决方案2】:

使用 HTML5,您可以使用一些 javascript 和 &lt;audio&gt;-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" />

这也有效(在&lt;audio&gt;-script 之前使用它:)

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

【讨论】:

  • 无关提示:向您的网站添加 HTML5 文档类型 ;)
【解决方案3】:

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

这是另一个处理它的 SO 帖子:

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      虽然您可以使用音频标签来做到这一点,但它在不支持 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 标准制定者拒绝的原因)。

      但这解决了问题:)

      【讨论】:

      • 你的意思是 HTML 5 吗? “不支持 HTML 的浏览器”似乎是一个小类别。
      • @Colin Pickard - 你真的知道不支持 HTML 的浏览器吗? :-)
      • @Franci Penov - WAP 和 i-mode 浏览器是唯一能想到的东西。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 2015-12-01
      相关资源
      最近更新 更多