0
我想做一個播放聲音文件(非常簡短的嘟嘟聲)並等待時間等於延遲時間然後重複的循環,此循環運行,直到我點擊暫停按鈕,等待時間延遲可以通過滑塊按鈕來改變循環正在運行。如何在每次迭代中檢查新的IBAction輸入?
- (void)playSound
{
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/Metronome-Sound.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = 0;
[audioPlayer play];
}
- (IBAction)playSelected:(UIButton *)sender
{
if (stateOfMetronome == 0){
stateOfMetronome = 1;
while (stateOfMetronome == 1){
[self playSound];
[NSThread sleepForTimeInterval:delay];
}
}
}
- (IBAction)pauseSeleted:(UIButton *)sender
{
if (stateOfMetronome == 1){
stateOfMetronome = 0;
[audioPlayer pause];
}
}
是的,請使用NSTimer。輪詢循環是邪惡的。 – sosborn 2011-12-21 00:00:10
我剛開始爲iPhone開發,所以看起來我有一些學習要做。謝謝。 – currentoor 2011-12-21 01:56:30