如何在AVAudioPlayer中指定循环之间的时间?

时间:2011-12-20 11:16:01

标签: iphone objective-c ios avaudioplayer audio

我正在制作一个节拍器应用程序,我的声音文件是一个非常简短的嘀嗒声,所以我需要能够改变循环之间的时间以获得每分钟正确的节拍。这是连续播放刻度声的代码。我想指定audioPlayer的每个循环之间的延迟。

NSURL *url = [NSURL fileURLWithPath:
         [NSString stringWithFormat:@"%@/Metronome-Sound.mp3", 
         [[NSBundle mainBundle] resourcePath]]];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];

audioPlayer.numberOfLoops = -1;
[audioPlayer play];

1 个答案:

答案 0 :(得分:1)

因为iPhone中没有更多api。最简单的方法之一是在委托方法[NSThread sleepForTimeInterval:]

中使用-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

修改

简单的.h文件后,类名实现委托,如<AVAudioPlayerDelegate>

然后在.m文件中实现委托方法,如下所示

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
    [NSThread sleepForTimeInterval:5.0];
}