Video SDK for UE4 快速接入

适用范围

本规范仅适用于使用游密实时音视频引擎UE4接口开发多人实时语音功能的开发者。

概述

游密实时语音SDK(Video SDK)是游密科技公司旗下的一款专注于为开发者提供实时语音技术和服务的云产品。我们的研发团队来自腾讯,其中不少是拥有10年以上音视频经验的专家,专业专注;我们的服务端节点部署遍布全球,为用户提供高效稳定的实时云服务,且弹性可扩展。通过Video SDK,能够让您的应用轻松拥有多人实时视频通话的能力,可广泛应用于社交、游戏、在线教育、视频会议等场景。支持一对一、多人实时视频互动,打破屏幕阻隔,还原最纯粹的面对面聊天场景。

四步集成

Step1:注册账号

游密官网注册游密账号。

Step2:添加应用,获取Appkey

在控制台添加应用,添加成功后 在网页左边的游戏栏会增加一个对应的应用,点击进去就可以获得接入需要的AppkeyAppsecret

Step3:下载Video SDK包体

根据游戏使用的游戏引擎与开发语言,在下载入口下载对应的SDK包体。

Step4:开发环境配置

开发环境配置

SDK目录概述

SDK以UE4插件的形式存在。

└─YoumeVideo
    |
    │  YoumeVideo.uplugin : 插件配置
    |           
    ├─Resources
    │      Icon128.png
    │      
    ├─Shaders
    │      YoumeVideo.usf : 视频渲染shader
    │      
    └─Source
        ├─YoumeVideo : SDK的API开放给C++和蓝图的适配逻辑
        │  │  YoumeVideo.Build.cs
        │  │  
        │  ├─Private
        │  │      YoumeVideo.cpp
        │  │      YoumeVideoAPI.cpp
        │  │      YoumeVideoObserver.cpp
        │  │      YoumeVideoTexture.cpp
        │  │      YoumeVideoTextureResource.cpp
        │  │      YoumeVideoTextureSample.cpp
        │  │      YoumeVideoType.cpp
        │  │      YoumeVideoWork.cpp
        │  │      
        │  ├─Public
        │  │      YoumeVideo.h
        │  │      YoumeVideoAPI.h
        │  │      YoumeVideoObserver.h
        │  │      YoumeVideoTexture.h
        │  │      YoumeVideoTextureResource.h
        │  │      YoumeVideoTextureSample.h
        │  │      YoumeVideoType.h
        │  │      YoumeVideoWork.h
        │  │      
        │  └─VideoSDK
        │      ├─include : SDK底层逻辑接口
        │      │      IYouMeEventCallback.h
        │      │      IYouMeVideoCallback.h
        │      │      IYouMeVoiceEngine.h
        │      │      VoiceEngineCallback.h
        │      │      YouMeConstDefine.h
        │      │      
        │      └─lib : SDK各平台库文件
        │          ├─android
        │          │  │  android-support-v4.jar
        │          │  │  YoumeVideo_UPL.xml
        │          │  │  youme_voice_engine.jar
        │          │  │  
        │          │  ├─arm64-v8a
        │          │  │      libyoume_voice_engine.so
        │          │  │      
        │          │  ├─armeabi
        │          │  │      libyoume_voice_engine.so
        │          │  │      
        │          │  ├─armeabi-v7a
        │          │  │      libyoume_voice_engine.so
        │          │  │      
        │          │  └─x86
        │          │          libyoume_voice_engine.so
        │          │          
        │          ├─ios
        │          │      libffmpeg3.3.a
        │          │      libYouMeCommon.a
        │          │      libyoume_voice_engine.a
        │          │      
        │          ├─macos
        │          │      libffmpeg3.3.a
        │          │      libYouMeCommon.a
        │          │      libyoume_voice_engine.a
        │          │      youme_voice_engine_mac.dylib
        │          │      
        │          ├─x64
        │          │      avcodec-57.dll
        │          │      avdevice-57.dll
        │          │      avfilter-6.dll
        │          │      avformat-57.dll
        │          │      avutil-55.dll
        │          │      D3DCompiler_43.dll
        │          │      d3dx10_43.dll
        │          │      libscreen.dll
        │          │      libx264-152.dll
        │          │      MediaApi.dll
        │          │      postproc-54.dll
        │          │      SDL2.dll
        │          │      swresample-2.dll
        │          │      swscale-4.dll
        │          │      youme_voice_engine.dll
        │          │      youme_voice_engine.lib
        │          │      youme_voice_engine.pdb
        │          │      
        │          └─x86
        │                  avcodec-57.dll
        │                  avdevice-57.dll
        │                  avfilter-6.dll
        │                  avformat-57.dll
        │                  avutil-55.dll
        │                  D3DCompiler_43.dll
        │                  d3dx10_43.dll
        │                  libgcc_s_dw2-1.dll
        │                  libiconv-2.dll
        │                  libscreen.dll
        │                  libx264-152.dll
        │                  MediaApi.dll
        │                  SDL2.dll
        │                  swresample-2.dll
        │                  swscale-4.dll
        │                  youme_voice_engine.dll
        │                  youme_voice_engine.lib
        │                  
        └─YoumeVideoUasge : 视频渲染Shader加载逻辑
            │  YoumeVideoUasge.Build.cs
            │  
            ├─Private
            │      YoumeVideoShaders.cpp
            │      YoumeVideoUasge.cpp
            │      
            └─Public
                    YoumeVideoShaders.h
                    YoumeVideoUasge.h

集成插件到项目

将YoumeVideo解压到工程目录的Plugins文件夹下, 重新生成VS工程, 在游戏的Build.cs添加 YoumeVideo 依赖, 如下所示 :

PrivateDependencyModuleNames.AddRange(new string[] { "YoumeVideo" });

重新编译运行即可。

打包权限配置

IOS权限配置

需要在 Project Settings -> IOS -> Additional Plist Data 添加如下权限请求。

<key>NSMicrophoneUsageDescription</key><string>App需要您的同意,才能访问麦克风</string><key>NSCameraUsageDescription</key><string>App需要您的同意,才能访问麦克风</string>

MAC权限配置

需要修改引擎目录/Engine/Source/Runtime/Launch/Resources/Mac下的Info-Editor.plist和Info.plist两个文件, 添加摄像机与麦克风的权限, 如下:

注意 : 在这两个文件下添加权限是为了能够在打包Mac包的时候给打出的包添加摄像机与麦克风的权限, 打出的包可以正常运行SDK的功能,但是在编辑器调用SDK功能的话依然还是没有权限的, 请考虑下载引擎源码重新编译引擎, 编译前在xcode添加摄像机与麦克风的权限。