2013-07-15 1 views
0

해당 오디오 파일을 표시하고 이미지하고 재생하는 것을 좋아합니다. 하지만 오디오 파일을 재생하기 전에 먼저 재생하고 있습니다. 내가 잘못 생각할 수 없었다. 모든이미지 표시 및 해당 오디오 재생

-(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

먼저 나는 주 스레드를 씹어하고 UI가 응답 할 것 같은 sleep를 사용하지 않는 것이 좋습니다 것이다. 나는 그것을 제거하는 것이 당신의 문제를 덜어 준다면 실제로는 궁금 할 것입니다. 앱이 코드를 통과하여 오디오를 재생할 가능성이 있으며 앱이 화면에 이미지를 표시하기 전에 sleep 명령을 누르는 중입니다. sleep을 제거하고 for 루프를 통해서만 반복하면 어떻게됩니까?