2

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

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

那么有可能吗?如果是,如何?

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

4

2 回答 2

2

音频标签是正确的工具:

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 支持音频标签。

于 2013-08-09T21:14:11.410 回答
0

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

它使用 HTML5 音频标签。

play('click.wav');

如果您需要在某个时间重复,只需将其放在 setInterval 上。

于 2013-08-09T23:09:35.633 回答