我正在使用调用方法的UIButton播放音频剪辑(请参见下面的代码)。我试图弄清楚如何编写一条语句来检测音频是否正在运行,以及音频文件是否正在播放,然后禁用/隐藏UIButton。

目前,如果您持续触摸播放按钮,则会播放音频剪辑的多个实例。

-(void) audioMethod {


NSString *path = [[NSBundle mainBundle] pathForResource:@"affs" ofType:@"mp3"];

theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

theAudio.delegate=self;

theAudio.numberOfLoops = -1;
[theAudio prepareToPlay];

[theAudio play];

}

谢谢你的帮助

最佳答案

您只需将调用类声明为AVAudioPlayerDelegate(如我所见,您已经完成了)。

然后编写一个方法:

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player
                       successfully:(BOOL)flag {

    myButton.enabled = YES;

}

并在开始播放声音时禁用该按钮:
...
theAudio.numberOfLoops = -1;
[theAudio prepareToPlay];

myButton.enabled = NO;

[theAudio play];

07-26 09:30