我有一个奇怪的要求,我希望我的音频播放器在完成音频时暂停。所以我可以向后播放音频,即使它会完成播放。
对这个要求有什么疯狂的想法吗?
您需要在界面中定义一个 pausedTime 变量。
@interface
NSTimeInterval pausedTime;
AVAudioPlayer *avAudioPlayer;
@end
然后,在实现部分,您可以添加以下这些方法来执行暂停和恢复功能。
@implementation
-(void)pauseAudio
{
pausedTime = avAudioPlayer.currentTime;
[avAudioPlayer stop];
}
-(void)resumeAudioPlaying
{
[avAudioPlayer playAtTime:pausedTime];
}
@end
它不是很漂亮,但是您可以使用 AVAudioPlayerDelegate 方法来检测声音何时播放完毕,然后创建一个新的播放器对象,并将其搜索位置设置为轨道的结尾,然后暂停它。
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWith....];
if ([player prepareToPlay]) {
[player playAtTime:player.duration - 1];
[player pause];
}
}