12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- //
- // FULandmarkManager.m
- // FULiveDemo
- //
- // Created by 项林平 on 2021/10/9.
- // Copyright © 2021 FaceUnity. All rights reserved.
- //
- #import "FULandmarkManager.h"
- #import <FURenderKit/FURenderKit.h>
- #import <FURenderKit/FUFacialFeatures.h>
- @interface FULandmarkManager ()
- @property (nonatomic, strong) FUFacialFeatures *landmarksItem;
- @end
- @implementation FULandmarkManager
- + (FULandmarkManager *)shared {
- static FULandmarkManager *landmarkView;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- CGFloat top = 0;
- if (@available(iOS 11.0, *)) {
- top = [UIApplication sharedApplication].delegate.window.safeAreaInsets.top;
- }
- landmarkView = [[self alloc] initWithFrame:CGRectMake(10, top + 60, 50, 30)];
- });
- [landmarkView addTarget:self action:@selector(landmarkSwitchAction:) forControlEvents:UIControlEventValueChanged];
- return landmarkView;
- }
- + (void)show {
- [[UIApplication sharedApplication].delegate.window addSubview:[self shared]];
- }
- + (void)dismiss {
- if ([self shared].superview) {
- [self shared].on = NO;
- [[FURenderKit shareRenderKit].stickerContainer removeSticker:[self shared].landmarksItem completion:nil];
- [[self shared] removeFromSuperview];
- }
- }
- + (void)landmarkSwitchAction:(UISwitch *)sender {
- if (sender.isOn) {
- [[FURenderKit shareRenderKit].stickerContainer addSticker:[self shared].landmarksItem completion:nil];
- } else {
- [[FURenderKit shareRenderKit].stickerContainer removeSticker:[self shared].landmarksItem completion:nil];
- }
- }
- - (FUFacialFeatures *)landmarksItem {
- if (!_landmarksItem) {
- NSString *path = [[NSBundle mainBundle] pathForResource:@"landmarks" ofType:@"bundle"];
- _landmarksItem = [[FUFacialFeatures alloc] initWithPath:path name:@"landmarks"];
- _landmarksItem.landmarksType = FUAITYPE_FACELANDMARKS239;
- }
- return _landmarksItem;
- }
- @end
|