为方便 Unity 开发者调试和接入腾讯云游戏多媒体引擎产品 API,这里向您介绍适用于 Unity 实时语音高清音质房间的使用文档。
前提条件
在 GME SDK v2.9 版本开始,GME Unity SDK 默认不支持使用实时语音高清音质房间。如非 2.9 及以上版本无需以下操作。
涉及功能
如果没有进行适配,Unity SDK 缺失以下功能:
更新 SDK
下载链接
库文件替换
将之前的 GME 库文件删除,使用下载后的库文件。增加的库文件示例如下图:


库文件对应功能
可以根据自己的需求只引入相应的库文件。例如只需要变声功能,则只需引入 libgme_soundtouch。
库文件 | 对应功能 |
libgme_fdkaac | 1. 用于进入标准、高清音质房间 2. 用于播放 acc 格式伴奏文件 |
libgme_faad2 | 用于播放 mp4 格式伴奏文件 |
libgme_ogg | 用于播放 ogg 格式伴奏文件 |
libgme_lamemp3 | 用于播放 mp3 格式伴奏文件 |
libgme_soundtouch | 用于变声、变调功能 |
导出配置
配置完成所需要的库文件后,iOS 平台打包动态库需要在导出时候进行配置,其他平台默认导出即可。
Unity 2019及以上版本
配置原理
新建一个 Editor OnPostprocessBuild 脚本,利用UnityEditor.iOS.Xcode.Extensions.PBXProjectExtensions.AddFileToEmbedFrameworks,这个 API 会自动将动态库拷贝到最终出包 Bundle 的 framework 目录下,并为其签名。
示例代码
可参考 Demo 工程中的 add_dylib.cs 脚本文件,根据自己工程需求将此部分代码放在工程中 Editor 文件夹下。
[UnityEditor.Callbacks.PostProcessBuild(1002)]public static void OnPostprocessBuild (UnityEditor.BuildTarget BuildTarget, string path){if (BuildTarget == UnityEditor.BuildTarget.iOS) {UnityEngine.Debug.Log ("OnPostprocessBuild add_dylib:" + path);#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX{string projPath = UnityEditor.iOS.Xcode.PBXProject.GetPBXProjectPath (path);UnityEditor.iOS.Xcode.PBXProject proj = new UnityEditor.iOS.Xcode.PBXProject ();proj.ReadFromString (System.IO.File.ReadAllText (projPath));// string targetGuid = proj.TargetGuidByName (UnityEditor.iOS.Xcode.PBXProject.GetUnityTargetName ()); // 2018string targetGuid = proj.GetUnityMainTargetGuid(); // 2019// 根据导入的 framework 进行删减string[] framework_names = {"libgme_fdkaac.framework","libgme_lamemp3.framework","libgme_ogg.framework","libgme_soundtouch.framework"};for (int i = 0; i < framework_names.Length; i++){string framework_name = framework_names[i];string dylibGuid = null;dylibGuid = proj.FindFileGuidByProjectPath("Frameworks/Plugins/iOS/" + framework_name);if (dylibGuid == null) {UnityEngine.Debug.LogWarning (framework_name + " guid not found");} else {UnityEngine.Debug.LogWarning (framework_name + " guid:" + dylibGuid);// proj.AddDynamicFramework (targetGuid, dylibGuid);UnityEditor.iOS.Xcode.Extensions.PBXProjectExtensions.AddFileToEmbedFrameworks(proj, targetGuid, dylibGuid);proj.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks");System.IO.File.WriteAllText (projPath, proj.WriteToString ());}}}#endif}}
Unity 版本低于2019
目前只有 Unity 2019 及以后版本可以使用 UnityEditor.iOS.Xcode.Extensions,如果是早期 Unity 版本,可以从高版本 Unity 导出 UnityEditor.iOS.Xcode 包给低版本 Unity 使用,或者直接参考附件 UnityEditorAV.iOS.XCode.zip 将此文件解压后放置于工程目录 Editor 文件夹下。

