ToB企服应用市场:ToB评测及商务社交产业平台

标题: 快速构建元宇宙专属虚拟形象,实时互动超酷炫 [打印本页]

作者: 慢吞云雾缓吐愁    时间: 2022-8-20 10:33
标题: 快速构建元宇宙专属虚拟形象,实时互动超酷炫
概述

即构虚拟形象引擎(Zego Avatar)支持自定义管理人物的虚拟形象,通过默认的虚拟形象或者自定义生成的专有虚拟形象,以表情随动、声音驱动等方式与真人实时互动,可广泛应用于语聊直播、社交互动、在线培训等多种场景中。

集成 SDK

准备环境

在开始集成 ZegoAvatar SDK 前,请确保开发环境满足以下要求:
集成 SDK

1(可选)新建项目

此步骤以如何创建新项目为例,如果是集成到已有项目,可忽略此步。
2 导入 SDK

目前支持的平台架构包括:armeabi-v7a、arm64-v8a。
3 设置权限

根据实际应用需要,设置应用所需权限。
进入 “app/src/main” 目录,打开 “AndroidManifest.xml” 文件,添加权限。
  1. [/code]因为 Android 6.0 在一些比较重要的权限上要求必须申请动态权限,不能只通过 “AndroidMainfest.xml” 文件申请静态权限。因此还需要参考执行如下代码,其中 “requestPermissions” 是 “Activity” 的方法。
  2. [code]String[] permissionNeeded = {
  3.     "android.permission.CAMERA"};
  4. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
  5.     if (ContextCompat.checkSelfPermission(this, "android.permission.CAMERA") != PackageManager.PERMISSION_GRANTED) {
  6.         requestPermissions(permissionNeeded, 101);
  7.     }
  8. }
复制代码
必要性权限权限说明申请原因必要权限CAMERA访问相机权限。通过摄像头画面推理面部表情时,需要使用该权限。RECORD_AUDIO录制音频权限。通过声音波动推理面部表情时,需要使用该权限。WRITE_EXTERNAL_STORAGE内置 SDK 写权限。SDK 会将日志和相关配置文件保存在内置 SDK 内。需要保存截图或录制的视频时,也需要使用该权限。非必要权限INTERNET访问网络权限。SDK 鉴权获取时,需要使用该权限。READ_EXTERNAL_STORAGE文件读取权限。SDK 需要读取资源包时,需要使用该权限。4 防止混淆代码

在 “proguard-rules.pro” 文件中,为 SDK 添加 -keep 类的配置,防止混淆 SDK 公共类名称。
  1. -keep class **.zego.**{*;}
复制代码
导入资源

使用 Avatar 提供的各项 AI 能力之前,需要导入相应的资源包,请前往 下载 页面,获取下列资源包。
开发者可以通过 动态下载 或 从本地添加 两种方式,导入资源包。
(推荐)动态下载

资源名称说明资源大小是否支持
动态下载建议下载时机AIModel.bundleAvatar 的 AI 模型资源。当使用表情随动、声音随动、AI 捏脸等能力时,必须先将该资源的绝对路径设置给 Avatar SDK。
必须在 ZegoAvatarService 初始化前完成下载。base.bundle美术资源,包含基础 3D 人物模型资源、资源映射表、人物模型默认外形等。
必须在创建 ZegoCharacterHelper 前完成下载。Packages美妆、挂件、装饰等资源。每个资源 200 KB ~ 1 MB 不等,跟资源复杂度相关。是建议在需要使用相关资源时再去下载,不使用时可不下载,减少对本地存储空间的占用。Packages 中包含了部分美术资源,开发者如有需要,请联系 ZEGO 商务人员,获取所有的美术资源。
从本地添加

使用步骤

本节介绍如何使用 ZegoAvatar SDK 实现基本的图像处理功能,API 调用时序如下图:

1 申请鉴权

ZEGO Avatar 目前使用 在线鉴权 的方式获取 License 授权文件。
1.1 开通 ZegoAvatar 权限

1.2 获取参考代码

请将从 下载 获取到的示例源码中的 LicenseHelper 文件夹中的代码,拷贝到自己的项目下。

1.3 安装依赖库

1.4 获取 License

通过 ZGAvatarLicenseHelper 中的 requestLicense 接口,发起网络请求,获取鉴权 License 字符串。
  1. // 发起网络请求获取 License
  2. [ZGAvatarLicenseHelper requestLicense:^(NSString * _Nonnull license) {
  3.     if (license.length > 0) {
  4.         // 初始化 avatar Service
  5.         [self initAvatarService: license];
  6.     }
  7. }];
复制代码
2 初始化 AvatarService

3 创建虚拟形象

在创建虚拟人物形象时,为了简化 Character(虚拟人物形象)的初始化、序列化、数据缓存、路径拼接等功能的接入流程,ZEGO Avatar SDK 提供了 ZegoCharacterHelper 类(开源),帮助开发者快速创建人物虚拟形象,详情请参考 ZegoCharacterHelper 使用说明
初始化 AvatarService 后,通过创建 ZegoCharacterHelper 对象,传入虚拟人物形象的外观数据(捏脸、换装、妆容等),设置视图参数(宽、高、位置等),创建一个虚拟形象。
  1. - (void) initAvatar{
  2.     // 创建 Helper,传入基础资源的路径
  3.     NSString *resourcePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/assets/base.bundle"];
  4.     _characterHelper = [[ZegoCharacterHelper alloc] init:resourcePath];
  5.    
  6.     // 设置素材资源包地址,如果是动态下载,则传入下载的目标目录
  7.     NSString *packagesPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/assets/Packages"];
  8.     [_characterHelper setExtendPackagesPath:packagesPath];
  9.    
  10.     // 使用默认形象,以男性角色为例
  11.     [_characterHelper setDefaultAvatar:MODEL_ID_MALE];
  12.     // 创建 AvatarView
  13.     _avatarView = [[ZegoAvatarService sharedInstance] createAvatarView:CGRectMake(0, 0, 200, 200)];
  14.     [self.view addSubview:_avatarView];
  15.     //角色上屏
  16.     [_characterHelper setCharacterView:_avatarView];
  17. }
复制代码
 
获取优惠活动



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4