美文网首页AVPlayer
iOS AVPlayer监听视频播放进度

iOS AVPlayer监听视频播放进度

作者: 马威明 | 来源:发表于2019-01-14 18:51 被阅读0次

    AVPlayer视频播放时 我们常常需要获取当前视频的播放进度 来自定义一些操作 比如重复播放 播放结束后弹出广告等 下面是系统提供的监听AVPlayer视频播放进度的方法:方法传入 时间间隔 时间单位 和线程队列 并在boock中返回CMTime类型的时间进度

        __weak typeof(self)WeakSelf = self;
        __strong typeof(WeakSelf) strongSelf = WeakSelf;
        [self.avPlayer addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(1, NSEC_PER_SEC)
                                                  queue:NULL
                                             usingBlock:^(CMTime time) {
                                                 //进度 当前时间/总时间
                                                 CGFloat progress = CMTimeGetSeconds(WeakSelf.avPlayer.currentItem.currentTime) / CMTimeGetSeconds(WeakSelf.avPlayer.currentItem.duration);
    //在这里截取播放进度并处理
                                                 if (progress == 1.0f) {
                                                   //播放百分比为1表示已经播放完毕
                                                     WeakSelf.centerPlayBtn.hidden = NO;
    //处理成员变量在block中报警告问题
                                                     strongSelf -> isplay = NO;
    //改变播放按钮状态
                                                     [WeakSelf.bottomPlayBtn setImage:[UIImage imageNamed:@"视频播放"] forState:UIControlStateNormal];
    //停止并移除计时器
                                                     [WeakSelf stopTimer];
                                                     [WeakSelf removeTimer];
    //强制竖屏
                                                     [WeakSelf orientationToPortrait:UIInterfaceOrientationPortrait];
                                                     [WeakSelf endView];
                                                 }
    
                                             }];
    

    相关文章

      网友评论

        本文标题:iOS AVPlayer监听视频播放进度

        本文链接:https://www.haomeiwen.com/subject/ecbjdqtx.html