我正在使用调用方法的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];