cc域名做網(wǎng)站怎么樣熱點新聞事件
Unity接入GVoice騰訊實時語音
- 一、介紹
- 二、注冊GVoice創(chuàng)建項目語音服務(wù)
- 1.創(chuàng)建項目
- 2.申請語音權(quán)限
- 3.項目管理查看SDK初始化的一些參數(shù)和基本信息
- 4.GVoice檢測
- 三、SDK下載
- SDK是分為兩種類型:
- 獨立版
- 集成板
- SDK放入Unity工程中
- 四、語音代碼寫法
- 五、GVoice踩坑
- 語音權(quán)限問題
- 打包問題
- 六、總結(jié)
一、介紹
最近在做一個實時競技類游戲,類似于王者榮耀類型的MOBA類實時聯(lián)網(wǎng)游戲。針對戰(zhàn)斗和組隊界面需要加入語音的方便大家進行交流,看了幾家語音價格也都是參差不齊最后選擇的是騰訊的GVoice(價格很低折合費用下來一人一天0.012元),這個也是我們目前用的最合適的。后面我會把完整流程寫下來并且把我踩的坑也講一下,感謝大家的支持。
二、注冊GVoice創(chuàng)建項目語音服務(wù)
GVoice官網(wǎng)
先進行賬號注冊,這里我就不過多提示了,直接進入開啟服務(wù)的申請和創(chuàng)建項目。
進入控制臺是這個樣子的,右上角是創(chuàng)建新項目
1.創(chuàng)建項目
根據(jù)下屬圖進行對應(yīng)的創(chuàng)建即可
創(chuàng)建之后進入創(chuàng)建項目的控制臺如下圖
2.申請語音權(quán)限
點擊進入之后進行申請
申請之后可以找客服對接一下,讓他幫你快速通過
3.項目管理查看SDK初始化的一些參數(shù)和基本信息
項目管理會彈出來界面有你需要的一些信息
4.GVoice檢測
開通這個語音服務(wù)之后可以查看這個語音的檢測
三、SDK下載
GVoice的獨立版官方文檔,文檔中有一些常規(guī)的錯誤和一些解決方案,當然這不是全部的坑都在里面,所有的API和調(diào)用方法是可以看的,踩的坑還是五花八門的,后面在繼續(xù)說坑的問題。
GVoice的集成板官方文檔
SDK是分為兩種類型:
獨立版
獨立版是需要自己下載SDK拖到Unity項目中,這也是我嘗試的方法,推薦這個方法。這里我也是主要講一下獨立版SDK的接入。
集成板
集成板則是需要在UnityStore中去關(guān)注下載這個sdk,在Unity中用PackageManager進行安裝SDK,這里的安裝方法我就不仔細說了,在Store中搜索GVoice找到騰訊加的插件下載安裝到項目中即可。
SDK放入Unity工程中
SDK分為海外版和國內(nèi)版,SDK連接下載。
打開網(wǎng)頁下載自己對應(yīng)的版本如下圖
下載解壓完成之后如下圖
將上面兩個文件夾放入到Unity中
四、語音代碼寫法
這里可以參考我上面的官方獨立版API,里面寫的更全面一些,這里我只接入了小隊語音,還有一些高級的玩法我們沒有用到就沒有接入。
這是我創(chuàng)建的測試工程UI和使用到的一些API如下圖
代碼如下我就不過多解釋了備注都加了差不多應(yīng)該都能看明白,SDK的appId和appKey在自己創(chuàng)建的項目中的控制臺中找一下,然后下面可以參考我寫的一些小隊語音的常規(guī)操作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"替換為開通業(yè)務(wù)時從管理控制臺獲取的 AppIDstring appID = "**********";//接入時請將"AppKey"替換為開通業(yè)務(wù)時從管理控制臺獲取的 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>/// 暫停語音/// </summary>public void VoiceEnginePause() {sVoiceEngine.Pause(); }/// <summary>/// 繼續(xù)語音/// </summary>public void VoiceEngineResume(){sVoiceEngine.Resume();}/// <summary>/// 打開麥克風/// </summary>public void VoiceOpenMic() {sVoiceEngine.OpenMic();}/// <summary>/// 關(guān)閉麥克風/// </summary>public void VoiceCloseMic() {sVoiceEngine.CloseMic();}/// <summary>/// 打開揚聲器/// </summary>public void VoiceOpenSpeaker() {sVoiceEngine.OpenSpeaker();}/// <summary>/// 關(guān)閉揚聲器/// </summary>public void VoiceCloseSpeaker() {sVoiceEngine.CloseSpeaker();}
}
注意這個測試只能在Window編輯器下去跑,在Android編輯器模式下是跑不了的,需要修改一下他原來GCloudVoice的代碼如下圖所示,將原來的宏定義修改如下(不會影響原來打包之后的安卓手機運行)
五、GVoice踩坑
語音權(quán)限問題
這里我開始測試的時候是用的編輯器做的測試,這種情況下就需要電腦的麥的權(quán)限是開啟的,開始我的電腦麥的權(quán)限是關(guān)閉的情況下運行的發(fā)現(xiàn)沒有聲音以為是插件接入的有問題,在開啟語音的過程中在開啟麥的權(quán)限也是不行的(這里只針對編輯器和電腦端),這里測試的環(huán)境必須是先確保麥的權(quán)限是開啟的在運行Unity去初始化SDK。
這里還有一點是如果你退出的時候沒有自己退出房間和關(guān)閉麥他是不會自己退出的,等于說你在取消Unity的運行也會有聲音,除非你把Unity關(guān)閉這樣才能退出這個語音房間,不然只能你手動退出。
打包問題
如果是2020以上的Unity需要將Plugin下的含有.jar的父級文件夾加上后綴.androidlib如下圖(加入之后才能識別.jar的文件,打包到手機平臺才能沒有問題 官方文檔標記)
如果沒有加后綴上面打包出現(xiàn)的手機端運行報錯如下
4111官方文檔解釋是SDK初始化為成功
六、總結(jié)
上述是我在接入GVoiceSDK時遇到的一些問題和完整流程的整理,有誤區(qū)的地方希望指正,感謝大家的支持和關(guān)注。