检测音频文件是否正在播放 - iphone

时间:2010-10-15 10:23:41

标签: iphone audio core-audio

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

}

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您只需将调用类声明为AVAudioPlayerDelegate(正如我所见)。

然后你写了一个方法:

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

    myButton.enabled = YES;

}

并在开始播放声音时禁用按钮:

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

myButton.enabled = NO;

[theAudio play];