简体   繁体   English

用CreateJS快速重复短声音

[英]Repeating a short sound very fast with CreateJS

Goal 目标

I am trying to create a fast ticking sound in a Cordova app using Createjs. 我正在尝试使用Createjs在Cordova应用程序中创建快速滴答声。

The ticking sound speed changes based on user settings. 滴答声的速度根据用户设置而变化。 At the moment the timing is erratic 目前时机不定

Setup 设定

I have an mp3 audio file of a single tick sound that is 50ms long. 我有一个单滴答声的mp3音频文件,长度为50ms。

A target speed of repetition could be as fast as 10 times per second. 目标重复速度可能高达每秒10次。

Question

How can I get the sound to play evenly and consistently at that speed? 如何使声音以该速度均匀一致地播放?

More Technical Detail 更多技术细节

createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED; createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED;
createjs.Ticker.framerate = 30; createjs.Ticker.framerate = 30;

Cheers for any help 为任何帮助加油

This should be pretty straightforward. 这应该非常简单。 I set up a quick fiddle to play a sound a specific amount of times per second. 我设置了一个快速提琴,以每秒播放特定次数的声音。 It seems pretty reliable, even when playing at 60fps. 即使以60fps播放时,它似乎也很可靠。

https://jsfiddle.net/lannymcnie/ghjejvq9/ https://jsfiddle.net/lannymcnie/ghjejvq9/

The approach is to just check every Ticker.tick if the amount of time has passed since the last tick sound. 方法是仅检查每个Ticker.tick是否自上次滴答声以来已过去了多长时间。 The duration is derived by 1000/ticksPerSecond . 持续时间由1000/ticksPerSecond得出。

// Every tick
var d = new Date().getTime();
if (d > lastTick + 1000/ticksPerSecond) {
  createjs.Sound.play("tick");
  lastTick = d;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM