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

标签 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];

最佳答案

因为 iPhone 中不再有 api。最简单的方法之一是使用 [NSThread sleepForTimeInterval:]在委托(delegate)方法中-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

编辑

简单地在.h文件中的类名之后实现像这样的委托(delegate)<AVAudioPlayerDelegate>

然后在.m文件中实现委托(delegate)方法如下

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

关于iphone - 如何指定 AVAudioPlayer 中循环之间的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8574581/

相关文章:

iphone - 一次分配,retainCount == 2

iOS Today 扩展创建为 .app 而不是 .appex

iphone - 带分页的动态 UIScrollView

ios - UITableViewCell 仍在屏幕上时被重用?

iphone - 如何只删除一个部分中的行

ios - iTunes 语言代码不支持越南语

ios - 在安装时将初始内容添加到应用程序中

iphone - 带有 AVPlayer 的音频流

iPhone/iPad 表格 View 仅重新加载一行而不是整个表格

objective-c - NSWindow 类似 Quicksilver