按钮触摸播放声音

时间:2012-11-24 18:45:00

标签: objective-c ios xcode

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

这是我的代码:

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

    playOn.delegate=self;


    [playOn play];

1 个答案:

答案 0 :(得分:0)

当你告诉你需要在点击按钮时播放文件所以你应该在点击按钮时使用小音频文件

这里假设下面的方法被称为On Button Click。

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

 }