我喜欢显示和图像并播放相应的音频文件。但它在显示之前首先播放音频文件。我无法弄清楚是什么问题。
-(IBAction)playButton :(id)sender{
UIImage *imageA = [UIImage imageNamed:@"Image1.png"];
UIImage *imageB = [UIImage imageNamed:@"Image2.png"];
int randomAlphaNum = arc4random() % 2;
NSLog(@"%i", randomAlphaNum);
switch (randomAlphaNum) {
case 0:
imageView.image = imageA;
for (int i = 1; i <=5; i++) {
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audioA.wav", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.volume = 0.5;
if (audioPlayer == nil)
NSLog(@"An audio error occured: \"%@\"", audioPlayer);
else
{
[audioPlayer play];
}
sleep(2);
}
return;
break;
}
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)viewDidUnload
{
[super viewDidUnload];
}
答案 0 :(得分:0)
首先,我不建议使用sleep
因为它会破坏你的主线程并使你的UI无响应。我真的很好奇,如果删除它可以缓解你的问题。在应用程序可以在屏幕上显示图像之前,应用程序可能会通过您的代码,播放音频并点击sleep
命令。如果您删除sleep
并且只遍历for
循环一次,会发生什么?