我想用 JavaScript制作一个在线节拍器。最近我周围的人开始需要它们,但没有一个像样的人不使用 Flash。所以我想为什么不呢。
在开始之前,我想确保使用 JavaScript 可以做到这一点。基本上我只需要知道是否可以输出声音,如果可以,那么其余的应该足够简单。
那么有可能吗?如果是,如何?
PS:我检查了 HTML5 音频标签,但我认为它不会起作用。这不是一个带有节拍器声音的长文件。这是一个循环,每次它应该运行声音。
我想用 JavaScript制作一个在线节拍器。最近我周围的人开始需要它们,但没有一个像样的人不使用 Flash。所以我想为什么不呢。
在开始之前,我想确保使用 JavaScript 可以做到这一点。基本上我只需要知道是否可以输出声音,如果可以,那么其余的应该足够简单。
那么有可能吗?如果是,如何?
PS:我检查了 HTML5 音频标签,但我认为它不会起作用。这不是一个带有节拍器声音的长文件。这是一个循环,每次它应该运行声音。
音频标签是正确的工具:
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 支持音频标签。
你可以使用我的 play() 函数: http: //pastebin.com/GKRx0GDk
它使用 HTML5 音频标签。
play('click.wav');
如果您需要在某个时间重复,只需将其放在 setInterval 上。