我正在爲iOS編寫音樂遊戲。我試圖做的是讓電腦播放一首曲子,其中包括調用播放聲音,暫停和調用播放不同聲音的另一種方法的方法。延遲/睡眠呼叫方法
所以我想弄清楚如何調用這些方法的延遲/睡眠。我發現了兩種非常麻煩的方法。首先是不要使用
[self performSelector:@selector(startNotePlay:) withObject:button afterDelay:.5];
[self performSelector:@selector(startNotePlay:) withObject:button afterDelay:2.5];
etc etc...
但是這種方式是很煩人的,因爲所有的方法被調用一次,因此延遲必須保持考慮暫停多長時間和筆記之前玩多久。所以很多數學需要做...
第二種方法是使用睡眠,這是更容易。
[self performSelector:@selector(startNotePlay:) withObject:button afterDelay:.5];
sleep(2.0);
[self performSelector:@selector(startNotePlay:) withObject:button afterDelay:1.5];
這個問題是睡眠關閉主線程。所以當睡眠發生時,我無法做任何UI更改。
這兩者之間有什麼?無論如何,基本上不用關閉所有東西就可以進行睡眠。或者類似的,執行此方法,然後在X延遲後執行該方法?
感謝您的幫助, 加布
您使用哪個API來播放聲音?你怎麼知道這些聲音有多長?用戶是否可以在聲音之間暫停(或者您是否需要取消)? – Wain