2017-12-18 115 views
2

目標

我試圖在使用Createjs的科爾多瓦應用程序中創建快速的滴答聲。使用CreateJS快速重複短時間的聲音

的滴答聲的速度基於用戶設置的變化。此刻的時間是不穩定的

設置

我有一個滴答的聲音,爲50ms長的MP3音頻文件。

重複的目標速度可以是每秒的速度的10倍。

問題

如何讓聲音在該速度下均勻一致地播放?

更多技術細節

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

乾杯任何幫助

+0

是否有您要解決的特定問題,或者您只是在尋找建議? – Lanny

+0

謝謝@蘭尼。可能有一點建議尋求,但問題是試圖播放聲音反覆非常快時,嘀嗒聲的不穩定節奏。你認爲每100ms可以播放一次我的聲音嗎?即使我的幀速率爲60(〜17ms),並且每6秒鐘播放一次,聽起來也很不穩定。 –

回答

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

我覺得在測試之前我有點興奮。也許這是一個科爾多瓦的事情......但我已經實現了你的代碼,並且仍然不穩定。彈出一個控制檯錯誤。 Uncaught TypeError:e.setPlaybackResource不是一個函數。我使用createJS 1.0.0 –

+0

我認爲,我們在最新版本中得到解決的錯誤(該功能被錯誤不建議使用) - https://github.com/CreateJS/SoundJS/commit/33b1303425da20770688455c46aab28c6dab4cdc。您也可以使用更快的刻度以獲得更高的準確性(如使用RAF)。任何時刻的嘀嗒聲肯定會阻止它可靠地播放 - 我的演示沒有其他任何東西,所以沒有什麼影響它的性能。 – Lanny

+0

科爾多瓦也可以增加實際的聲音您的通話之間不一致的延遲,並... :( – Lanny