延迟一段时间后播放音频文件

时间:2010-10-08 14:42:30

标签: ios iphone audio audiosessionservices

我有一个音频文件,我希望在用户看到一些动画播放等后,以20秒的延迟开始播放...

有谁知道我会怎么做呢?我有5个动画播放,之后我想要音频文件开始。整个过程会一直循环,直到用户退出应用程序。

这是我播放音频文件的代码。如果按下按钮或在viewDidLoad上,我可以播放它,它可以正常工作。

NSString *audioSoundPath = [[ NSBundle mainBundle] pathForResource:@"audio_file" ofType:@"caf"];
CFURLRef audioURL = (CFURLRef) [NSURL fileURLWithPath:audioSoundPath];
AudioServicesCreateSystemSoundID(audioURL, &audioID); 

AudioServicesPlaySystemSound(audioID);

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

如果你知道它总是正好20秒,那么你可以使用NSTimer来调用启动音频的方法:

[NSTimer scheduledTimerWithTimeInterval:20 target:self selector:@selector(startPlaying) userInfo:nil repeats:NO];


-(void)startPlaying {

    NSString *audioSoundPath = [[ NSBundle mainBundle] pathForResource:@"audio_file" ofType:@"caf"];
    CFURLRef audioURL = (CFURLRef) [NSURL fileURLWithPath:audioSoundPath];
    AudioServicesCreateSystemSoundID(audioURL, &audioID);
    AudioServicesPlaySystemSound(audioID);
}

答案 1 :(得分:2)

您也可以使用

[self performSelector: @selector(playSound:) withObject: audioURL afterDelay: 20.0f];