0

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

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

4

2 回答 2

0

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

@interface

NSTimeInterval pausedTime;
AVAudioPlayer *avAudioPlayer;

@end

然后,在实现部分,您可以添加以下这些方法来执行暂停和恢复功能。

@implementation

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

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

@end
于 2013-08-09T11:37:57.340 回答
0

不是很漂亮,但是您可以使用 AVAudioPlayerDelegate 方法来检测声音何时播放完毕,然后创建一个新的播放器对象,并将其搜索位置设置为轨道的结尾,然后暂停它。

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

    if ([player prepareToPlay]) {
        [player playAtTime:player.duration - 1];
        [player pause];
    }
}
于 2013-08-09T11:40:56.693 回答