如何恢复我在Avplayer中停下来的视频



我做了一个示例演示,在我看来播放一个视频。

代码:

- (IBAction)playVideo:(id)sender
{
    NSURL *videoURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"sample_Video" ofType:@"mp4"]];
    self.player = [AVPlayer playerWithURL:videoURL];
    AVPlayerLayer* playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
    playerLayer.frame = self.videoView.bounds;
    [self.videoView.layer addSublayer:playerLayer];
    [self.player play];
    self.slider.hidden = NO;
    self.playButton.enabled = NO;
    self.pauseButton.enabled = YES;
}
-(IBAction)pauseVideo:(id)sender
{
    [self.player pause];
    self.playButton.enabled = YES;
    self.pauseButton.enabled = NO;
}

我的问题是当我单击播放视频播放时。当我单击暂停视频暂停时。

但是,当我再次单击时,它再次开始开始。我想要简历功能。

这是因为您再次初始化播放器。做这个技巧

在.h中声明一个变量bool iSresumed = false;

现在将您的代码更新为此

-(IBAction)playVideo:(id)sender {
    if(isResumed) {
        [self.player play];
        self.pauseButton.enabled = YES;
    }
    else{
        NSURL *videoURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"sample_Video" ofType:@"mp4"]];
        self.player = [AVPlayer playerWithURL:videoURL];
        AVPlayerLayer* playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
        playerLayer.frame = self.videoView.bounds;
        [self.videoView.layer addSublayer:playerLayer];
        [self.player play];
        self.slider.hidden = NO;
        self.playButton.enabled = NO;
        self.pauseButton.enabled = YES;
    }
}
-(IBAction)pauseVideo:(id)sender {
    isResumed = true;
    [self.player pause];
    self.playButton.enabled = YES;
    self.pauseButton.enabled = NO;
}

这是因为在您的PlayVideo方法中,您正在创建Avplayer的新实例。添加"如果"条件以检查您是否已经有Avplayer,然后恢复它。在您的playVideo方法中添加此代码:

if (self.player) {
    [self.player play];
    return;
}

最新更新