如何暂停AVAudioPlayer而不是完成音频

时间:2013-08-09 11:31:29

标签: iphone ios avaudioplayer

我有一个奇怪的要求,我希望我的音频播放器在完成音频时暂停。所以我可以将音频向后移动,即使它会完成播放。

对这个要求有什么疯狂的想法吗?

2 个答案:

答案 0 :(得分:0)

您需要在界面中定义pausedTime变量。

@interface

NSTimeInterval pausedTime;
AVAudioPlayer *avAudioPlayer;

@end

然后,在实现部分中,您可以使用以下方法来执行暂停和恢复功能。

@implementation

-(void)pauseAudio
{
  pausedTime = avAudioPlayer.currentTime;
  [avAudioPlayer stop];
}

-(void)resumeAudioPlaying
{
  [avAudioPlayer playAtTime:pausedTime];
}

@end

答案 1 :(得分:0)

不是很漂亮,但您可以使用AVAudioPlayerDelegate方法来检测播放声音的时间,然后创建一个新的播放器对象,其搜索位置设置为刚刚结束跟踪然后暂停它。

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
    AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWith....];

    if ([player prepareToPlay]) {
        [player playAtTime:player.duration - 1];
        [player pause];
    }
}