【问题标题】:Output sound using JavaScript [duplicate]使用 JavaScript 输出声音 [重复]
【发布时间】:2013-08-11 21:48:02
【问题描述】:

我想使用 JavaScript 创建一个在线metronome。最近我周围的人开始需要它们,但没有一个像样的人不使用 Flash。所以我想为什么不呢。

在开始之前,我想确保使用 JavaScript 可以做到这一点。基本上我只需要知道是否可以输出声音,如果可以,那么其余的应该足够简单。

那么有可能吗?如果是,怎么做?

P.S.:我检查了 HTML5 音频标签,但我认为它不会起作用。这不是一个带有节拍器声音的长文件。这是一个循环,每次它应该运行声音。

【问题讨论】:

  • 并不是说我是节拍器方面的专家,但是应该可以设计一个可以正确循环的声音循环(即在正确的时间发出节拍器的滴答声)并且不必一个非常长的文件,以便您可以将它与 HTML5 音频标签一起使用。
  • 是什么让您认为音频标签不能用于此目的?
  • 请查看musquitojs.com

标签: javascript audio


【解决方案1】:

音频标签是正确的工具:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio

创建一个音频标签 - 类似于:

<audio id="m" loop>
    <source src="metronome.mp3">
</audio>

And either make it loop using the appropriate options on the tag (loop), or you can script it in JS:

<script>
// goes inside whatever event handler - when the user clicks a button, timer, etc.
document.getElementById('m').play(); // play the sound
</script>

这篇文章提供了很好的介绍:

http://html5doctor.com/native-audio-in-the-browser/

如果您需要它在较旧的浏览器中工作,您可以求助于使用 Flash(这是“传统上”这种事情的完成方式)。但正如您所提到的 - 避免这种情况进行新开发是个好主意。 IE9+和Chrome、FF、Safari、Opera支持audio标签。

【讨论】:

    【解决方案2】:

    你可以使用我的 play() 函数:http://pastebin.com/GKRx0GDk

    它使用 HTML5 音频标签。

    play('click.wav');
    

    如果您需要在特定时间重复,只需将其放在 setInterval 上即可。

    【讨论】:

      猜你喜欢
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多