大型网站建设机构,wordpress存档显示文章所有内容,公司二次开发好吗,美食软文300范例Unity接入GVoice腾讯实时语音 一、介绍二、注册GVoice创建项目语音服务1.创建项目2.申请语音权限3.项目管理查看SDK初始化的一些参数和基本信息4.GVoice检测 三、SDK下载SDK是分为两种类型#xff1a;独立版集成板 SDK放入Unity工程中 四、语音代码写法五、GVoice踩坑语音权限… Unity接入GVoice腾讯实时语音 一、介绍二、注册GVoice创建项目语音服务1.创建项目2.申请语音权限3.项目管理查看SDK初始化的一些参数和基本信息4.GVoice检测 三、SDK下载SDK是分为两种类型独立版集成板 SDK放入Unity工程中 四、语音代码写法五、GVoice踩坑语音权限问题打包问题 六、总结 一、介绍
最近在做一个实时竞技类游戏类似于王者荣耀类型的MOBA类实时联网游戏。针对战斗和组队界面需要加入语音的方便大家进行交流看了几家语音价格也都是参差不齐最后选择的是腾讯的GVoice价格很低折合费用下来一人一天0.012元这个也是我们目前用的最合适的。后面我会把完整流程写下来并且把我踩的坑也讲一下感谢大家的支持。
二、注册GVoice创建项目语音服务
GVoice官网 先进行账号注册这里我就不过多提示了直接进入开启服务的申请和创建项目。
进入控制台是这个样子的右上角是创建新项目
1.创建项目
根据下属图进行对应的创建即可 创建之后进入创建项目的控制台如下图
2.申请语音权限 点击进入之后进行申请 申请之后可以找客服对接一下让他帮你快速通过
3.项目管理查看SDK初始化的一些参数和基本信息
项目管理会弹出来界面有你需要的一些信息
4.GVoice检测
开通这个语音服务之后可以查看这个语音的检测
三、SDK下载
GVoice的独立版官方文档文档中有一些常规的错误和一些解决方案当然这不是全部的坑都在里面所有的API和调用方法是可以看的踩的坑还是五花八门的后面在继续说坑的问题。 GVoice的集成板官方文档
SDK是分为两种类型
独立版
独立版是需要自己下载SDK拖到Unity项目中这也是我尝试的方法推荐这个方法。这里我也是主要讲一下独立版SDK的接入。
集成板
集成板则是需要在UnityStore中去关注下载这个sdk在Unity中用PackageManager进行安装SDK这里的安装方法我就不仔细说了在Store中搜索GVoice找到腾讯加的插件下载安装到项目中即可。
SDK放入Unity工程中
SDK分为海外版和国内版SDK连接下载。 打开网页下载自己对应的版本如下图 下载解压完成之后如下图 将上面两个文件夹放入到Unity中
四、语音代码写法
这里可以参考我上面的官方独立版API里面写的更全面一些这里我只接入了小队语音还有一些高级的玩法我们没有用到就没有接入。
这是我创建的测试工程UI和使用到的一些API如下图 代码如下我就不过多解释了备注都加了差不多应该都能看明白SDK的appId和appKey在自己创建的项目中的控制台中找一下然后下面可以参考我写的一些小队语音的常规操作API如果想要接入其他的API功能可以在官方的API中在查找一下
using gcloud_voice;
using System;
using UnityEngine;
using static gcloud_voice.IGCloudVoice;public class SDKInit : MonoBehaviour
{IGCloudVoice sVoiceEngine;// Start is called before the first frame updatevoid Start(){sVoiceEngine GCloudVoice.GetEngine();//接入时请将AppID替换为开通业务时从管理控制台获取的 AppIDstring appID **********;//接入时请将AppKey替换为开通业务时从管理控制台获取的 AppKeystring appkey *******************************;// 接入时替换为玩家唯一标识符//string openID 970001;string openID DateTime.Now.ToString();int AppInfoID sVoiceEngine.SetAppInfo(appID, appkey, openID);Debug.LogError(AppInfoID AppInfoID);int InitId sVoiceEngine.Init();Debug.LogError(InitId InitId);sVoiceEngine.OnJoinRoomComplete JoinRoomCompleteHandler;}// Update is called once per framevoid Update(){if (sVoiceEngine ! null){sVoiceEngine.Poll();}if (Input.GetKeyDown(KeyCode.Space)) {GetRoomNumber();}}public void GetRoomNumber() {string roomName abc;int memNum 8;RoomMembers[] memberlist new RoomMembers[memNum];sVoiceEngine.GetRoomMembers(roomName, memberlist, memNum);Debug.LogError(memberlist.Length memberlist.Length);Debug.LogError(memberlist[0].memberid memberlist[0].memberid);}public void StartTeamRoom() {sVoiceEngine.SetMode(GCloudVoiceMode.RealTime);string mRoomName abc;int mTimeOut 10000;sVoiceEngine.JoinTeamRoom(mRoomName, mTimeOut);}void JoinRoomCompleteHandler(GCloudVoiceCompleteCode code, string roomName, int memberID) {Debug.LogError(code code);Debug.LogError(roomName roomName);Debug.LogError(memberID memberID);}/// summary/// 暂停语音/// /summarypublic void VoiceEnginePause() {sVoiceEngine.Pause(); }/// summary/// 继续语音/// /summarypublic void VoiceEngineResume(){sVoiceEngine.Resume();}/// summary/// 打开麦克风/// /summarypublic void VoiceOpenMic() {sVoiceEngine.OpenMic();}/// summary/// 关闭麦克风/// /summarypublic void VoiceCloseMic() {sVoiceEngine.CloseMic();}/// summary/// 打开扬声器/// /summarypublic void VoiceOpenSpeaker() {sVoiceEngine.OpenSpeaker();}/// summary/// 关闭扬声器/// /summarypublic void VoiceCloseSpeaker() {sVoiceEngine.CloseSpeaker();}
}
注意这个测试只能在Window编辑器下去跑在Android编辑器模式下是跑不了的需要修改一下他原来GCloudVoice的代码如下图所示将原来的宏定义修改如下不会影响原来打包之后的安卓手机运行
五、GVoice踩坑
语音权限问题
这里我开始测试的时候是用的编辑器做的测试这种情况下就需要电脑的麦的权限是开启的开始我的电脑麦的权限是关闭的情况下运行的发现没有声音以为是插件接入的有问题在开启语音的过程中在开启麦的权限也是不行的这里只针对编辑器和电脑端这里测试的环境必须是先确保麦的权限是开启的在运行Unity去初始化SDK。 这里还有一点是如果你退出的时候没有自己退出房间和关闭麦他是不会自己退出的等于说你在取消Unity的运行也会有声音除非你把Unity关闭这样才能退出这个语音房间不然只能你手动退出。
打包问题
如果是2020以上的Unity需要将Plugin下的含有.jar的父级文件夹加上后缀.androidlib如下图加入之后才能识别.jar的文件打包到手机平台才能没有问题 官方文档标记 如果没有加后缀上面打包出现的手机端运行报错如下 4111官方文档解释是SDK初始化为成功
六、总结
上述是我在接入GVoiceSDK时遇到的一些问题和完整流程的整理有误区的地方希望指正感谢大家的支持和关注。