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];
}
4

1 に答える 1

0

まず第一にsleep、メインスレッドをかみ砕き、UI が応答しなくなるため、使用はお勧めしません。それを削除することで問題が軽減されるかどうか、私は実際に興味があります。アプリがコードを飛んでオーディオを再生しsleep、アプリが画面に画像を表示する前にコマンドを実行する可能性があります。ループを削除sleepして 1 回だけ繰り返すとどうなりますか?for

于 2013-07-15T20:22:20.570 に答える