如何判断AVAudioPlayer已经播放完毕

时间:2014-09-02 16:07:23

标签: 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 alloc] initWithContentsOfURL:url error:&url];error;

if(!self.player)
{
    NSLog(@"Error creating player: %@", error);
}

这是我用来播放声音的代码:

[self.player play];

如何判断播放完成?

提前非常感谢你!

2 个答案:

答案 0 :(得分:7)

查看AVAudioPlayerDelegate协议,该协议有一个方法告诉代表什么时候音频播放完成,特别是你要找的是- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag,这里是reference

希望有所帮助

丹尼尔

答案 1 :(得分:1)

很久以前,我很确定你曾经在想过。如果有人读了这篇文章:

1)你的类应该实现AVAudioPlayerDelegate。 (https://developer.apple.com/documentation/avfoundation/avaudioplayerdelegate

其中一种委托方法是:

audioPlayerDidFinishPlaying:successfully:

2)设置委托:

self.player.delegate = self