Ios 如何判断AVAudioPlayer已完成播放

Ios 如何判断AVAudioPlayer已完成播放,ios,objective-c,ios7,xcode5,avaudioplayer,Ios,Objective C,Ios7,Xcode5,Avaudioplayer,我正在开发一个使用AVAudioPlayer播放声音的应用程序,我想知道声音何时播放完毕。我想在声音停止播放时更改图像 下面是我用来创建播放器的代码: NSURL* url = [[NSBundle mainBundle] URLForResource:@"LOLManFace1" withExtension:@"mp3"]; NSAssert(url, @"URL is valid."); NSError* error = nil; self.player = [[AVAudioPlayer

我正在开发一个使用
AVAudioPlayer
播放声音的应用程序,我想知道声音何时播放完毕。我想在声音停止播放时更改图像

下面是我用来创建播放器的代码:

NSURL* url = [[NSBundle mainBundle] URLForResource:@"LOLManFace1"  withExtension:@"mp3"];
NSAssert(url, @"URL is valid.");
NSError* error = nil;
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&url];error;

if(!self.player)
{
    NSLog(@"Error creating player: %@", error);
}
下面是我用来播放声音的代码:

[self.player play];
我怎么知道播放已经结束


提前非常感谢

看看AVAudioPlayerDelegate协议,该协议有一种方法可以告诉学员音频播放何时完成,特别是您要查找的是
-(void)AudioPlayerDifinishPlaying:(AVAudioPlayer*)player successfully:(BOOL)标志
,下面是一个

希望能有帮助


丹尼尔

很久以前,我敢肯定你在某一点上就明白了。如果有人读了这篇文章:

1) 您的类应该实现AVAudioPlayerDelegate。()

委托方法之一是:

audioPlayerDidFinishPlaying:successfully:
2) 设置委托:

self.player.delegate = self

您好,谢谢您的回答,我在按钮操作中调用[self AudioPlayerDifinishPlaying:self.player successfully:YES],但在if语句中,我想知道声音是否结束,但出现了一个错误,我如何将其放在if上才能更改图像?您没有正确使用此选项,请参阅以查看协议和代理的工作流程