繁体   English   中英

iOS:AVAudioPlayer暂停后从头开始

[英]iOS:AVAudioPlayer starts from beginning after pause

我正在尝试实现AVAudioPlayer以开始,暂停,停止,倒带和转发带有进度条的音频。 我实现了成功启动,但是当我pause音频并再次播放时,它从头开始重新启动,而不是从剩下的声音中恢复。

以下是代码:

    - (IBAction)btnPlay_click:(id)sender {

    UIButton *btn = (UIButton *)sender;
    if([btn backgroundImageForState:UIControlStateNormal] == [UIImage imageNamed:@"play.png"]){
        [self.audioPlayer setDelegate:self];
    NSString *audioPath = [NSString stringWithFormat:@"%@/%@",self.strBookPath, [arrMP3Files objectAtIndex:currentPage+1]];
    NSURL *audioURL = [NSURL fileURLWithPath:audioPath];
    NSError *error;
    self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:&error];
        [self.audioPlayer prepareToPlay];
    [self.audioPlayer play];
        [btn setBackgroundImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
    } else {
        [self.audioPlayer pause];
        [btn setBackgroundImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
    }
}

我哪里出问题了? 我该如何解决?

我认为您应该像下面那样更新代码

- (IBAction)btnPlay_click:(UIButton *)sender
{

    if (!self.audioPlayer)
    {
        NSString *audioPath = [NSString stringWithFormat:@"%@/%@",self.strBookPath, [arrMP3Files objectAtIndex:currentPage+1]];

        NSURL *audioURL = [NSURL fileURLWithPath:audioPath];

        NSError *error;

        self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:&error];

        [self.audioPlayer setDelegate:self];

        [self.audioPlayer prepareToPlay];
    }

    if(![self.audioPlayer isPlaying])
    {

        [self.audioPlayer play];

        [btn setBackgroundImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
    }
    else
    {
        [self.audioPlayer pause];

        [btn setBackgroundImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM