【OC-动画】SVGA 动画

作者: 苜蓿鬼仙 | 来源:发表于2018-09-27 10:42 被阅读0次

声明:
此处仅仅只是作为记录开发中使用 SVGA 动画的笔记,所以没有进行相关动画知识的扩展。

#pragma mark --------------------
#pragma mark --------------------  SVGAPlayer  --------------------

- (NSMutableArray *)svgaGiftArrayM {
    if (!_svgaGiftArrayM) {
        _svgaGiftArrayM = [NSMutableArray array];
    }
    return _svgaGiftArrayM;
}

/** 添加 SVGA 动画 **/
- (void)addSVGAAnimationWithGifId:(NSString *)gifId {
    
    [self.svgaGiftArrayM addObject:gifId];
    [self addSvgaPlayerAnimationWithGifId:gifId];
}

- (void)addSvgaPlayerAnimationWithGifId:(NSString *)gifId {
    
    NSString *nameString;
    if ([gifId isEqualToString:@"127"]) {
//        nameString = @"posche-2_0";
        nameString = @"127布加迪";
    } else if ([gifId isEqualToString:@"128"]) {
        nameString = @"rose_2.0.0";
    } else if ([gifId isEqualToString:@"129"]) {
        nameString = @"angel";
    } else if ([gifId isEqualToString:@"130"]) {
        nameString = @"change";
    } else if ([gifId isEqualToString:@"132"]) {
        nameString = @"132飞机";
    } else if ([gifId isEqualToString:@"133"]) {
        nameString = @"133火箭";
    } else if ([gifId isEqualToString:@"134"]) {
        nameString = @"134海岛";
    } else if ([gifId isEqualToString:@"135"]) {
        nameString = @"135樱花雨";
    } else if ([gifId isEqualToString:@"136"]) {
        nameString = @"136游轮";
    }
    
    if (!self.svgaPlayer && !self.svgaParser && self.svgaPlayNum == 0) {
        self.svgaParser = [[SVGAParser alloc] init];
        self.svgaPlayer = [[SVGAPlayer alloc] initWithFrame:CGRectMake(0, K_Screen_H-K_Screen_W*16/9, K_Screen_W, K_Screen_W*16/9)];
        @K_Weakify(self)
        [self.svgaPlayer jjc_view_addTapGestureWithBlock:^{
            @K_Strongify(self)
            [self zhezhaoBTNdelegate];
        }];
        [self.view insertSubview:self.svgaPlayer belowSubview:toolBar];
        
        [self.svgaParser parseWithNamed:nameString inBundle:[NSBundle mainBundle] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
            
            if (videoItem != nil) {
                self.svgaPlayer.videoItem = videoItem;
                self.svgaPlayer.delegate = self;
                [self.svgaPlayer startAnimation];
            }
        } failureBlock:^(NSError * _Nonnull error) {
            
        }];
    }
}

- (void)svgaPlayerDidAnimatedToPercentage:(CGFloat)percentage {
    NSLog(@"--------------- percentage == %f ----------- ", percentage);
}

- (void)svgaPlayerDidAnimatedToFrame:(NSInteger)frame {
    NSLog(@"--------------- frame == %ld ----------- ", frame);
    
    if (frame == 59) {
        self.svgaPlayNum++;

        if (self.svgaPlayNum % 2 == 0) {
            
            [self.svgaGiftArrayM removeObjectAtIndex:0];
            [self.svgaPlayer stopAnimation];
            [self.svgaPlayer clear];
            
            self.svgaPlayNum = 0;
            self.svgaParser = nil;
            [self.svgaPlayer removeFromSuperview];
            self.svgaPlayer = nil;
            
            [self checkIsGoSvgaPlayAnimation];
        }
    }
}

- (void)checkIsGoSvgaPlayAnimation {
    
    if (self.svgaGiftArrayM.count > 0) {
        NSString *gifId = self.svgaGiftArrayM[0];
        [self addSvgaPlayerAnimationWithGifId:gifId];
    }
}

相关文章

  • 【OC-动画】SVGA 动画

    声明:此处仅仅只是作为记录开发中使用 SVGA 动画的笔记,所以没有进行相关动画知识的扩展。

  • SVGA

    一、SVGA[http://svga.io/index.html] 全新的动画格式 高性能动画播放体验 SVGA ...

  • SVGA使用文档

    SVGA动画介绍: SVGA是YY开发的一种跨平台的开源动画格式,同时兼容 iOS / Android / Flu...

  • SVGA-介绍

    SVGA-Format 介绍 SVGA 是一种动画格式 SVGA 类似于 Dragonbones / Create...

  • 直播App中酷炫礼物动画实现方案

    SVGA-Format 介绍 SVGA 是一种动画格式 SVGA 类似于 Dragonbones / Create...

  • SVGA使用心得

    1、什么是SVGA SVGA是一种动画格式,可以兼容安卓、ios和web,可以实现很多复杂的动画,这样开发就不用头...

  • 对于WebP格式入门解读

    因为项目中需要用到大量动画效果,前期尝试过几种方案,比如GIF、帧动画、lottie、SVGA等格式的动画渲染方案...

  • 直播动画实现方案一

    全新的动画格式 高性能动画播放体验 SVGA 是一种同时兼容 iOS / Android / Web 多个平台的动...

  • Android加载SVGA动画

    使用SvgaPlayer。具体操作看稳定。 需要注意的是,仿直播间需要加载多张动画时候,需要每次动态生成SVGAI...

  • Android动画SVGA的使用

    Android动画SVGA的使用  2019年下半年开始,开始做语音聊天房,从各大平台调研后,发现礼物的动画越来越...

网友评论

    本文标题:【OC-动画】SVGA 动画

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