Unity接入GVoice腾讯实时语音

这篇具有很好参考价值的文章主要介绍了Unity接入GVoice腾讯实时语音。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、介绍

最近在做一个实时竞技类游戏,类似于王者荣耀类型的MOBA类实时联网游戏。针对战斗和组队界面需要加入语音的方便大家进行交流,看了几家语音价格也都是参差不齐最后选择的是腾讯的GVoice(价格很低折合费用下来一人一天0.012元),这个也是我们目前用的最合适的。后面我会把完整流程写下来并且把我踩的坑也讲一下,感谢大家的支持。

二、注册GVoice创建项目语音服务

GVoice官网
先进行账号注册,这里我就不过多提示了,直接进入开启服务的申请和创建项目。

进入控制台是这个样子的,右上角是创建新项目
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入

1.创建项目

根据下属图进行对应的创建即可
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入
创建之后进入创建项目的控制台如下图
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入

2.申请语音权限

Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入
点击进入之后进行申请
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入
申请之后可以找客服对接一下,让他帮你快速通过

3.项目管理查看SDK初始化的一些参数和基本信息

项目管理会弹出来界面有你需要的一些信息
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入

4.GVoice检测

开通这个语音服务之后可以查看这个语音的检测Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入

三、SDK下载

GVoice的独立版官方文档,文档中有一些常规的错误和一些解决方案,当然这不是全部的坑都在里面,所有的API和调用方法是可以看的,踩的坑还是五花八门的,后面在继续说坑的问题。
GVoice的集成板官方文档
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入

SDK是分为两种类型:

独立版

独立版是需要自己下载SDK拖到Unity项目中,这也是我尝试的方法,推荐这个方法。这里我也是主要讲一下独立版SDK的接入。

集成板

集成板则是需要在UnityStore中去关注下载这个sdk,在Unity中用PackageManager进行安装SDK,这里的安装方法我就不仔细说了,在Store中搜索GVoice找到腾讯加的插件下载安装到项目中即可。

SDK放入Unity工程中

SDK分为海外版和国内版,SDK连接下载。
打开网页下载自己对应的版本如下图
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入
下载解压完成之后如下图
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入
将上面两个文件夹放入到Unity中
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入

四、语音代码写法

这里可以参考我上面的官方独立版API,里面写的更全面一些,这里我只接入了小队语音,还有一些高级的玩法我们没有用到就没有接入。

这是我创建的测试工程UI和使用到的一些API如下图
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入
代码如下我就不过多解释了备注都加了差不多应该都能看明白,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 update
    void Start()
    {
        sVoiceEngine = GCloudVoice.GetEngine();

        //接入时请将"AppID"替换为开通业务时从管理控制台获取的 AppID
        string appID = "**********";

        //接入时请将"AppKey"替换为开通业务时从管理控制台获取的 AppKey
        string 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 frame
    void 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>
    /// 继续语音
    /// </summary>
    public void VoiceEngineResume()
    {
        sVoiceEngine.Resume();
    }

    /// <summary>
    /// 打开麦克风
    /// </summary>
    public void VoiceOpenMic() 
    {
        sVoiceEngine.OpenMic();
    }

    /// <summary>
    /// 关闭麦克风
    /// </summary>
    public void VoiceCloseMic() 
    {
        sVoiceEngine.CloseMic();
    }

    /// <summary>
    /// 打开扬声器
    /// </summary>
    public void VoiceOpenSpeaker() 
    {
        sVoiceEngine.OpenSpeaker();
    }

    /// <summary>
    /// 关闭扬声器
    /// </summary>
    public void VoiceCloseSpeaker() 
    {
        sVoiceEngine.CloseSpeaker();
    }
}

注意这个测试只能在Window编辑器下去跑,在Android编辑器模式下是跑不了的,需要修改一下他原来GCloudVoice的代码如下图所示,将原来的宏定义修改如下(不会影响原来打包之后的安卓手机运行)
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入

五、GVoice踩坑

语音权限问题

这里我开始测试的时候是用的编辑器做的测试,这种情况下就需要电脑的麦的权限是开启的,开始我的电脑麦的权限是关闭的情况下运行的发现没有声音以为是插件接入的有问题,在开启语音的过程中在开启麦的权限也是不行的(这里只针对编辑器和电脑端),这里测试的环境必须是先确保麦的权限是开启的在运行Unity去初始化SDK。
这里还有一点是如果你退出的时候没有自己退出房间和关闭麦他是不会自己退出的,等于说你在取消Unity的运行也会有声音,除非你把Unity关闭这样才能退出这个语音房间,不然只能你手动退出。

打包问题

如果是2020以上的Unity需要将Plugin下的含有.jar的父级文件夹加上后缀.androidlib如下图(加入之后才能识别.jar的文件,打包到手机平台才能没有问题 官方文档标记)
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入

Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入
如果没有加后缀上面打包出现的手机端运行报错如下
4111官方文档解释是SDK初始化为成功
Unity接入GVoice腾讯实时语音,Unity,unity,游戏引擎,GVoice,SDK接入,实时语音接入

六、总结

上述是我在接入GVoiceSDK时遇到的一些问题和完整流程的整理,有误区的地方希望指正,感谢大家的支持和关注。文章来源地址https://www.toymoban.com/news/detail-828186.html

到了这里,关于Unity接入GVoice腾讯实时语音的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【Unity】AI实战应用——Unity接入GPT和对游戏开发实际应用的展望

    【Unity】AI实战应用——Unity接入GPT和对游戏开发实际应用的展望

    GPT for unity插件地址: GitHub - sunsvip/ChatGPTForUnity: ChatGPT for unity 用法: 打开Unity PackageManager界面. Add package from git URL 粘贴插件地址添加 https://github.com/sunsvip/ChatGPTForUnity.git ———————————————————————————————————— 几个资本大佬花钱让一群

    2024年02月08日
    浏览(13)
  • 【Unity】AI实战应用——Unity接入ChatGPT和对游戏开发实际应用的展望

    【Unity】AI实战应用——Unity接入ChatGPT和对游戏开发实际应用的展望

    GPT for unity插件地址: GitHub - sunsvip/ChatGPTForUnity: ChatGPT for unity 用法: 打开Unity PackageManager界面. Add package from git URL 粘贴插件地址添加 https://github.com/sunsvip/ChatGPTForUnity.git ———————————————————————————————————— 几个资本大佬花钱让一群

    2023年04月08日
    浏览(18)
  • Unity发布抖音小游戏:SDK接入

    Unity发布抖音小游戏:SDK接入

    上篇介绍Unity小游戏发布抖音平台的开发者账号注册以及小游戏创建和申请。本篇介绍字节SDK接入Unity游戏项目中。 接入参考教程:Docs,下载bgdt.package包,并导入Unity项目工程。    打开ByteGame菜单,弹出字节工具面板。点击下载安装另外2个字节小游戏工具。   安装完毕后,

    2024年02月16日
    浏览(14)
  • 十八、Unity游戏引擎入门

    十八、Unity游戏引擎入门

    1、下载     首先需要下载Unity Hub,下载网址:https://unity.com/cn。     然后在其中下载Unity编辑器并安装,可选择最新版本。     接着需要选择适合的开发环境,例如Android Studio或Xcode,以便进行手机游戏开发。在安装完Unity后,需要根据项目需求下载对应的模块和插件,例

    2024年02月16日
    浏览(50)
  • Unity 之 最新原生广告Ads接入 -- 助力增长游戏收益

    Unity 之 最新原生广告Ads接入 -- 助力增长游戏收益

    Unity Ads 是由 Unity Technologies 开发的广告平台,可以用于在移动应用程序中显示广告。它提供了多种广告类型,包括插屏广告、横幅广告、视频广告等。 在本文中,我们将详细介绍如何接入 Unity Ads 广告 SDK。 在使用 Unity Ads 广告 SDK 之前,需要先登录Unity Ads后台。地址: https:/

    2024年02月11日
    浏览(12)
  • 如何在 Unity 游戏中集成 AI 语音识别?

    语音识别是一项将语音转换为文本的技术,想象一下它如何在游戏中发挥作用?发出命令操纵控制面板或者游戏角色、直接与 NPC 对话、提升交互性等等,都有可能。本文将介绍如何使用 Hugging Face Unity API 在 Unity 游戏中集成 SOTA 语音识别功能。 您可以访问 itch.io 网站 下载

    2024年02月08日
    浏览(11)
  • 【Unity实战篇 】| 如何在小游戏中快速接入一个新手引导教程
  • 使用团结引擎开发Unity 3D射击游戏

    使用团结引擎开发Unity 3D射击游戏

           本案例是初级案例,意在引导想使用unity的初级开发者能较快的入门,体验unity开发的方便性和简易性能。       本次我们将使用团结引擎进行开发,帮助想体验团结引擎的入门开发者进行较快的环境熟悉。      本游戏是一个俯视角度的射击游戏。主角始终位于屏幕

    2024年01月19日
    浏览(48)
  • Unity、UE、Cocos游戏开发引擎的区别

    Unity、Unreal Engine(UE)和Cocos引擎是三个常用的游戏开发引擎,它们在功能和特性上有一些区别。以下是它们之间的主要区别: 编程语言:Unity使用C#作为主要的编程语言,开发者可以使用C#脚本进行游戏逻辑编写。Unreal Engine主要使用C++作为编程语言,但也支持蓝图系统,允许

    2024年02月22日
    浏览(46)
  • Unity vs Godot :哪个游戏引擎更适合你?

    Unity vs Godot :哪个游戏引擎更适合你?

    游戏引擎的选择对开发过程和最终产品质量有着重大影响。近年来,Godot和Unity这两款引擎受到广泛关注。本文将从多个维度对两者进行比较,以期为开发者提供正确的选择建议。 Godot和Unity都有各自的优势,没有绝对的好坏之分。Godot开源免费,上手简单,更适合2D和小型游戏

    2024年01月23日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包