0

我想创建一个喊叫游戏。当用户按下喊按钮时,应该播放声音。我有密码。但我的问题是:如果用户触摸按钮,声音播放良好,但如果我非常快地按下按钮,按钮将突出显示的图像变慢。如果我在 ViewDidLoad 中使用我的代码,按钮图像会很好,非常快,但声音播放速度很慢,延迟。

这是我的代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"tap" ofType:@"mp3"];
    AVAudioPlayer *playOn =[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

    playOn.delegate=self;


    [playOn play];
4

1 回答 1

0

正如您所说,您需要在单击按钮时播放文件,所以在这里您应该在单击按钮时使用小音频文件

这里假设在按钮单击时调用下面的方法。

- (void)playAudio{

  if([player isPlaying])
            {

             [self stopAudio];
            }
   } 
    /* Use this code to play an audio file */
    NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:pathOfFile ofType:@"mp3"];
    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];

    player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
    player.numberOfLoops = 0; //o for play only once that file.
    player.delegate= self;
    isAudioPlaying = YES;
    [player play];
    //player is instance of AvAudioPlayer.
   //here write code for setting aND CHANging the image.
}


- (void)stopAudio
 {
 if (player!= nil) {
    [player stop];
 //do some task for changing the Image i.e setting the default image
 }

 }
于 2012-11-24T19:03:27.390 回答