2 Star 3 Fork 0

杭州相芯科技有限公司 / FUEMiOSDemo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

FUEMiOSDemo 快速接入文档

FUEMiOSDemo 是集成了 Faceunity 面部跟踪和虚拟道具功能 和 EMiOSDemo 音视频功能的 Demo。

本文是 FaceUnity SDK 快速对接环信EMiOSDemo 的导读说明,关于 FaceUnity SDK 的详细说明,请参看 FULiveDemo

快速集成方法

一、导入 SDK

将 FaceUnity 文件夹全部拖入工程中,并且添加依赖库 OpenGLES.frameworkAccelerate.frameworkCoreMedia.frameworkAVFoundation.frameworklibc++.tbdCoreML.framework

备注: Cocoapods 管理无需添加依赖库

FaceUnity 模块简介

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

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

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

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


@property (nonatomic, strong) FUAPIDemoBar *demoBar;

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

/// 初始化 demoBar
- (FUAPIDemoBar *)demoBar {
    if (!_demoBar) {
        
        _demoBar = [[FUAPIDemoBar alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 164 -250, self.view.frame.size.width, 164)];
        _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 = YES;
[FUManager shareManager].trackFlipx = YES;
[[FUManager shareManager] setAsyncTrackFaceEnable:NO];
[self.view addSubview:self.demoBar];

四、图像处理

DemoCallManager 类中设置自定义视频采集options.enableCustomizeVideoData = YES,获取视频数据,对图像进行处理,并发送给环信sdk:

-(void)didOutputVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer {
//    NSLog(@"自采集视频数据.....");
    CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) ;
//    [[FUManager shareManager] renderItemsToPixelBuffer:pixelBuffer];
    
    if (pixelBuffer != NULL) {
        CMTime cmTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
        
      /* 视频处理 */
        [[FUManager shareManager] renderItemsToPixelBuffer:pixelBuffer];
        
        /* 自采集预览 */
        [_glView displayPixelBuffer:pixelBuffer];
        
        [EMClient.sharedClient.callManager inputVideoPixelBuffer:pixelBuffer sampleBufferTime:cmTime rotation:0 callId:self.currentCall.callId completion:^(EMError *aError) {
            //NSLog(@"发送完成");
        }];
    
    }
}

五、销毁道具

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

[[FUManager shareManager] destoryItems];

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

[[FUManager shareManager] onCameraChange];

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

空文件

简介

相芯科技NAMA SDK与环信音视频对接Demo,集成了美颜,贴纸,美妆和美体常用功能 展开 收起
Objective-C 等 4 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/hangzhou_xiangxin_1/FUEMiOSDemo.git
git@gitee.com:hangzhou_xiangxin_1/FUEMiOSDemo.git
hangzhou_xiangxin_1
FUEMiOSDemo
FUEMiOSDemo
master

搜索帮助