2017-12-18 6 views
2

ゴール

Createjsを使用してCordovaアプリで速いティッキングサウンドを作成しようとしています。短い音をCreateJSで非常に高速に繰り返します。

ユーザーの設定に基づいて、ティッキング音の速さが変わります。現時点ではタイミングが

不安定なセットアップ

である私は、50msの長さであり、単一のチック音のMP3オーディオファイルを持っています。

ターゲットの繰り返し速度は、1秒あたり10回という速さです。

質問

は、どのように私は音がその速度で均等にかつ一貫して再生するために得ることができますか?

より技術的な詳細

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

助けを歓迎

+0

あなたが解決しようとしている特定の問題はありますか、または推奨事項を探していますか? – Lanny

+0

ありがとう@ラニー。多分、非常に速く繰り返してサウンドを再生しようとすると、チックの不規則なリズムが問題になります。あなたは100msごとに私の音を演奏することが可能だと思いますか?私が60(〜17ms)のフレームレートを持っていて、それを6th tick毎に再生しても、かなり不安定に聞こえます。 –

答えて

0

これはかなり簡単です。私は速いフィドルを設定して、毎秒特定の時間量の音を鳴らします。 60fpsで再生してもかなり信頼できるようです。

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

アプローチは、時間の量は、最後のチック音経過している場合だけで、すべてのTicker.tickをチェックすることです。期間は1000/ticksPerSecondによって得られます。

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

私はテストする前に少し興奮していると思います。おそらく、それはコルドバのことです...しかし、私はあなたのコードを実装し、まだ不安定なタイミングを取得しています。 1つのコンソールエラーがポップアップしています。 Uncaught TypeError:e.setPlaybackResourceは関数ではありません。私はcreateJS 1.0.0を使用しています –

+0

私は私たちが最新バージョン(機能は間違って非難されました)のエラーを解決したと思う - https://github.com/CreateJS/SoundJS/commit/33b1303425da20770688455c46aab28c6dab4cdc。 RAFを使用する場合のように、より正確なダンプを使用することもできます。私のデモでは何もしないので、パフォーマンスに影響を与えることはありません。 – Lanny

+0

Cordovaはあなたの呼び出しと実際の音との間に一貫性のない遅延を加えているかもしれません... ...( – Lanny

関連する問題