与NStimer iphone sdk同步声音?

时间:2009-11-25 07:53:08

标签: objective-c iphone audio synchronization nstimer

我正在创建一个应用程序,在我的应用程序中我正在更改倒计时的图像。我希望在一秒钟完成后播放一个Tick声音(我的意思是当图像改变时)。我有一个25秒长的声音,重复的嘀嗒声和在1秒的时间间隔内。有时它工作正常,但有时它不是。现在我如何与我的计时器同步音频。非常感谢,谢谢。

2 个答案:

答案 0 :(得分:0)

记录有25个刻度?)为什么不使用带有一个刻度的记录?如果响度不是您的目的,您可以使用AudioServicesCreateSystemSoundID播放,然后每秒拨打AudioServicesPlaySystemSound

答案 1 :(得分:0)

我建议将AudioServicesCreateSystemSoundID与一个只有一个刻度的声音文件一起使用,大约是1/16或更短的长度,并在你的init中使用它:

clickSound = [[self createSoundWithName:@"click"] intValue];

以下是设置声音的代码:

- (NSNumber*) createSoundWithName: (NSString*) name {
SystemSoundID soundID = -1;

NSString *path =[[NSBundle mainBundle] pathForResource:name ofType:@"caf"];
if (path != nil) {
    NSURL *url = [NSURL fileURLWithPath:path];
    if (url != nil) {
        OSStatus err = AudioServicesCreateSystemSoundID ((CFURLRef) url, &soundID);
        if (err) NSLog (@"AudioServicesCreateSystemSoundID error %d", err);
    }
}
return [NSNumber numberWithInt:soundID];
}

这是您点击的位置:

- (void) playClick  {
AudioServicesPlaySystemSound (clickSound);
}