我正在为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