Skip to content

Faceunity/FUNIMLiveEntDemo

Repository files navigation

云信在线互动(旁路直播) iOS 版阅读指南

FUNIMLiveEntDemo2 是集成了 Faceunity 面部跟踪和虚拟道具功能 和 网易云信互动直播功能的 Demo。

本文是 FaceUnity SDK 快速对接 网易云信互动直播 的导读说明

关于 FaceUnity SDK 的更多详细说明,请参看 FULiveDemo

美颜工具条的显示: 运行程序-> 主播端 -> 主播推流 -> 视频直播 -> 开始直播

快速集成方法

一、导入 SDK

将 FaceUnity 文件夹全部拖入工程中,NamaSDK所需依赖库为 OpenGLES.frameworkAccelerate.frameworkCoreMedia.frameworkAVFoundation.frameworklibc++.tbdCoreML.framework

  • 备注: 上述NamaSDK 依赖库使用 Pods 管理 会自动添加依赖,运行在iOS11以下系统时,需要手动添加CoreML.framework,并在TARGETS -> Build Phases-> Link Binary With LibrariesCoreML.framework手动修改为可选Optional

FaceUnity 模块简介

-FUManager              //nama 业务类
-FUCamera               //视频采集类(示例程序未用到)    
-authpack.h             //权限文件
+FUAPIDemoBar     //美颜工具条,可自定义
+items       //贴纸和美妆资源 xx.bundel文件
      

二、加入展示 FaceUnity SDK 美颜贴纸效果的 UI

1、在 NTESAnchorLiveViewController.m 中添加头文件,并创建页面属性

/* faceU */
#import "FUAPIDemoBar.h"
#import "FUManager.h"


@property (nonatomic, strong) FUAPIDemoBar *demoBar;

2、初始化 UI,并遵循代理 FUAPIDemoBarDelegate ,实现代理方法 bottomDidChange: 切换贴纸 和 filterValueChange 更新美颜参数。

-(FUAPIDemoBar *)demoBar{
    if (!_demoBar) {
        _demoBar = [[FUAPIDemoBar alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 300, self.view.frame.size.width, 194)];
        //_demoBar.hidden = YES;
        _demoBar.mDelegate = self;
    }
    return _demoBar ;
}

切换贴纸

// 切换贴纸
-(void)bottomDidChange:(int)index{
    if (index < 3) {
        [[FUManager shareManager] setRenderType:FUDataTypeBeautify];
    }
    if (index == 3) {
        [[FUManager shareManager] setRenderType:FUDataTypeStrick];
    }
    
    if (index == 4) {
        [[FUManager shareManager] setRenderType:FUDataTypeMakeup];
    }
    if (index == 5) {
        [[FUManager shareManager] setRenderType:FUDataTypebody];
    }
}

更新美颜参数

// 更新美颜参数    
- (void)filterValueChange:(FUBeautyParam *)param{
    [[FUManager shareManager] filterValueChange:param];
}

三、在 viewDidLoad: 初始化SDK,并将demoBar添加到页面上

/* faceU */
[[FUManager shareManager] loadFilter];
[FUManager shareManager].isRender = YES;
[FUManager shareManager].flipx = NO;
[FUManager shareManager].trackFlipx = NO;
[self.innerView addSubview:self.demoBar];

四、在视频数据回调中 加入 FaceUnity 的数据处理

视频数据处理Block,在 NTESMediaCapture.m 的 processVideoSampleBuffer:

- (void)processVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer
{
    CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
    /* faceU */
    [[FUManager shareManager] renderItemsToPixelBuffer:pixelBuffer];
    

五、销毁道具

1 视图控制器生命周期结束时,销毁道具

[[FUManager shareManager] destoryItems];

2 切换摄像头需要调用,切换摄像头

[[FUManager shareManager] onCameraChange];

关于 FaceUnity SDK 的更多详细说明,请参看 FULiveDemo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages