Talk SDK for Unity3D 体验指引

主播/指挥模式

概述

主播/指挥模式目前主要应用于大型MMO类游戏。在用户进入游戏界面时,就可以看到语音房间的入口。因一个游戏内可能有多个房间,如主播房间、国家指挥房间、帮派指挥房间等,入口通常会用菜单选项表示,便于用户切换。

主播和指挥房间通常由游戏根据主播、国家指挥等身份已设定好,通常为固定的房间号。某用户(对应唯一userid)想加入某房间(对应唯一roomid),则游戏侧将userid+roomid同步给游密,游密将该userid直接放入该roomid对应的语音房间内,用户即可听到主播/指挥说话。

Step1. 初始化

  • 场景说明:【主播端/听众端】调用,游戏启动时,即可调用游密初始化
  • 调用接口Init
  • 代码示例与详细说明Unity3D示例

Step2. 加入频道

加入频道

  • 场景说明:【主播端/听众端】调用,如上图所示,点击下拉列表中的主播/指挥按钮进入频道。主播/指挥端启用麦克风,可以讲话,听众端不启用麦克风
  • 调用接口JoinConference,主播端和听众端都调用该接口,区别仅在于参数的不同,具体可参考代码示例
  • 代码示例与详细说明Unity3D示例

Step3.1. 主播端开启麦克风讲话,听众端关闭麦克风

主播播音

  • 场景说明:【主播端】场景,主播/指挥端开启或者关闭麦克风、播放/停止战歌播放,即上麦/下麦的控制;对于听众端而言,不允许讲话,因此,麦克风的状态始终是关闭状态。
  • 调用接口SetMicrophoneMute
  • 代码示例与详细说明Unity3D示例

Step3.2. 主播上下麦及监听

监听

  • 场景说明

    • 【主播端】场景
    • 指挥/主播在指挥过程中需要临时休息,可以通过操作上下麦,来开始或暂时停止播音。
    • 指挥/主播勾选监听,则可以听到听众侧的声音效果,来实时的判断、调整说话的方式和声音大小等,达到最佳的效果。
  • 上下麦控制
    • 调用接口:SetMicrophoneMute
    • 代码示例与详细说明:Unity3D示例
  • 监听设置
    • 调用接口:SetMicBypassToSpeaker
    • 代码示例与详细说明:Unity3D示例

可选场景:播放战歌

战歌

  • 场景说明

    • 【主播端】场景,主播在和玩家互动时播放战歌活跃现场气氛,也可以根据玩家的点歌需求,播放游戏玩家想听的歌曲
    • 点击音乐搜索框,输入需要寻找的音乐/歌手名称,即可搜索音乐,搜索到的音乐清单会呈现在下方列表
    • 加入歌单的音乐,可以进行下载、删除、播放等管理
    • 在播放音乐按钮处,需要调用游密播放战歌接口
    • 音乐播放区可以进行播放、播放上一首、播放下一首、选择不同播放模式、调节音量大小等功能
    • 需要用到的接口主要为播放战歌接口、设置音量接口
  • 播放战歌
    • 调用接口:PlayBackgroundMusic
    • 代码示例与详细说明:Unity3D示例
  • 停止播放战歌
    • 调用接口:StopBackgroundMusic
    • 代码示例与详细说明:Unity3D示例
  • 设置战歌音量
    • 调用接口:SetBackgroundMusicVolume
    • 代码示例与详细说明:Unity3D示例

可选场景:召集

召集

  • 场景说明
    • 【主播端】场景
    • 指挥在国战之前,通常需要召集本国成员进行集结并同时统一听从指挥,此时指挥可以在语音面板中,点击发送召集令,成员则可以收到提示,成员接令后可被自动拉进指挥语音房间,收听指挥,在这种情况下,成员需要以听众的身份调用加入指挥频道的接口。
  • 调用接口JoinConference
  • 代码示例与详细说明Unity3D示例

可选场景:转移指挥权限

指挥权限转移

  • 场景说明
    • 【主播端】场景
    • 游戏内国王通常拥有授予、转移指挥权限的能力;
    • 若游戏只允许同时只有一个指挥,如国王在没时间指挥时,可能需要将指挥权限转移给其他人来临时指挥;
    • 对于国王,需要先调用离开房间接口,再调用进入房间接口(以普通听众麦克风权限设置进入);
    • 而对被授予者:若其已在指挥房间,则先调用离开房间接口(普通听众身份),再调用进入房间接口(以指挥麦克风权限设置进入);若其本不再指挥房间,则直接调用进入房间接口(以指挥麦克风权限设置进入);
    • 若游戏允许同时存在多个指挥,国王直接授予某用户指挥权限,两人都可以同时在房间内自由说话;
    • 对于国王,保持在房间不变;
    • 对于被授予者,操作如上
  • 加入频道接口
    • 调用接口:JoinConference
    • 代码示例与详细说明:Unity3D示例
  • 离开频道接口
    • 调用接口:LeaveConference
    • 代码示例与详细说明:Unity3D示例

可选场景:切换房间

切换房间

  • 场景说明
    • 【听众端】场景
    • 一般情况下,游戏中会存在多个、多种房间,比如主播房间、指挥房间、甚至是帮派、队伍等,根据游戏需要而定,因此,对于玩家来说,会有在多个房间之间切换的需求,如图所示。一般遵循的规则是,当玩家从上一个房间切换到下一个房间时,需要先调用离开房间的接口退出上一个房间,然后再调用进入房间的接口接入下一个房间。
  • 加入频道接口
    • 调用接口:JoinConference
    • 代码示例与详细说明:Unity3D示例
  • 离开频道接口
    • 调用接口:LeaveConference
    • 代码示例与详细说明:Unity3D示例

Step4. 退出频道

  • 场景说明
    • 【主播端/听众端】调用
    • 通常,在以下场景时,建议退出语音房间:
      1. 用户退出游戏
      2. 杀掉游戏进程时
      3. 游戏暂时退到后台,即界面收起不在焦点上时,如点击Home键收起游戏、来电时
      4. 临时组队战斗语音中,战斗队伍解散时
      5. 多角色游戏中,用户切换游戏角色时
      6. 手机界面锁屏时
  • 调用接口LeaveConference
  • 代码示例与详细说明Unity3D示例

Step5. 反初始化

  • 场景说明:游戏退出时,即可调用游密反初始化
  • 调用接口UnInit
  • 代码示例与详细说明Unity3D示例

自由通话模式

概述

在自由通话模式下,房间内的成员可自由说话,麦克风/扬声器权限可自由控制,适用于房间通话人数较少的情况。

  • 应用场景

    1. 普通用户挂机闲聊(如日常跑环时与好友闲聊)
    2. 组队竞技开黑时同队成员间沟通(如Moba、枪战等)
    3. 组队刷副本打boss时沟通对策(如格斗闯关)
    4. 固定组织的日常沟通频道,如公会、帮派。(如帮内活跃人物做帮派日常任务时交流)
  • 场景说明

    • 游戏内临时组队、固定帮会等日常语音沟通,当队伍创建时,该队伍对应的语音房间也创建了,该队伍的玩家则自动进入该语音房间。某用户(对应唯一userid)想建立、加入某语音房间(对应唯一roomid),则游戏侧将useridroomid同步给游密,游密将该userid放入roomid对应的语音房间内,相同roomid的user间可通话
    • 当加入语音房间失败时,游戏会收到加入失败的回调,此时若游戏及队伍正常在线,则游密会自动重连

Step1. 初始化

  • 场景说明:游戏启动时,即可调用游密初始化
  • 调用接口Init
  • 代码示例与详细说明Unity3D示例

Step2. 创建/加入频道

加入频道-自由模式

  • 场景说明:当组队完成的同时,游戏即根据需要调用加入语音房间的接口,一般在玩家点击开启麦克风操作时调用
  • 调用接口:在自由通话模式下,调用加入普通频道的接口JoinConference;注:加入普通频道接口和加入特殊频道接口的区别仅仅在于参数的不同,具体可参考代码示例
  • 代码示例与详细说明Unity3D示例

Step3. 开始通话

加入频道-开始通话

  • 场景说明:加入频道成功后,即可开始通话,此时,点击麦克风开关,可控制麦克风开启/关闭,点击扬声器开关,可控制扬声器开启/关闭
  • 上麦/下麦
    • 调用接口:SetMicrophoneMute
    • 代码示例与详细说明:Unity3D示例
  • 开启/关闭扬声器
    • 调用接口:SetSpeakerMute
    • 代码示例与详细说明:Unity3D示例
  • 其他说明
    • 当游戏麦克风权限被系统禁用时,则麦克风会开启失败,不能正常通话,此时建议给予用户弹出框提示,告知用户麦克风设置路径,引导开启麦克风:如图所示

麦克风被禁用

* 当用户开始通话时,可能会有游戏背景音、音效、通话音量三路声音,为保证通话清晰,建议在开始通话时将游戏背景音自动降至20%-30%,音效至50%左右,以获得较佳的通话体验

Step4. 通话中,同步麦克风/扬声器开启状态

同步设备状态

  • 通话过程中,若用户1开启了麦克风,其状态可以同步给其他用户,其他用户的界面上,用户1的头像旁就出现一个示意图标,或文字提示,标识其开启麦克风,以引起其他玩家的注意,从而引导他们也一起开启麦克风进行语音通话
  • 同步麦克风状态
    • 调用接口:OnCommonStatusEvent
    • 代码示例与详细说明:Unity3D示例

可选场景:屏蔽/禁用某用户声音

屏蔽禁用

  • 场景说明
    • 如图,在成员界面中,如果想屏蔽其他人的语音,可通过点击扬声器按钮来屏蔽,此时调用AvoidOtherVoice接口。
    • 游戏也可以指定房间内有身份的用户,如会长,拥有禁用其他用户的麦克风的权利,若会长不想让某个用户说话,则可以在其管理面板中将该用户禁言。此时其他玩家均不能听到该玩家说话,如图中的用户4。
  • 屏蔽某人语音
    • 调用接口:AvoidOtherVoice
    • 代码示例与详细说明:Unity3D示例
  • 控制其他人的扬声器状态
    • 调用接口:SetOtherMicStatus
    • 代码示例与详细说明:Unity3D示例

Step5. 退出频道

  • 场景说明

    通常,在以下场景时,建议自动退出语音房间:

    1. 用户退出游戏
    2. 杀掉游戏进程时
    3. 游戏暂时退到后台,即界面收起不在焦点上时,如点击Home键收起游戏
    4. 临时组队战斗语音中,战斗队伍解散时
    5. 多角色游戏中,用户切换游戏角色时
    6. 手机界面锁屏时
  • 调用接口LeaveConference
  • 代码示例与详细说明Unity3D示例

Step6. 反初始化

  • 场景说明:游戏退出时,即可调用游密反初始化
  • 调用接口UnInit
  • 代码示例与详细说明Unity3D示例

其他

  • 建议游戏默认开启扬声器,如有队友开启语音讲话即可收听到。
  • 建议记录玩家上次的语音按钮状态,下次对局时默认上次状态。
  • 新手引导:建议以气泡等形式提醒用户可以开启麦克风和队友语音互动,如图所示。

    新手引导

  • 建议记录玩家上次的语音按钮状态,下次对局时默认上次状态。
  • 建议在展示玩家头像的地方,同时展示麦克风是否开启的状态,可起到引导其他玩家开启麦克风的作用。一般需要展示麦克风状态的场景有四个:

    设备状态

    1. 玩家在游戏中的形象头部 如上图所示,玩家可在游戏中的形象头部看到是否开启麦克风的状态;
    2. 游戏顶部的玩家列表 如上图所示,用户可在游戏画面顶部的组队用户列表中,查看到其他玩家麦克风是否开启的状态;
    3. 选择英雄界面中的玩家列表

    设备状态

    如上图所示,玩家可在英雄选择界面看到自己的麦克风/扬声器状态,从而选择是否开启麦克风/扬声器,同时,也能在右侧的组队列表中,看到其他队友是否开启了麦克风的状态;

    1. 玩家对阵列表

    设备状态

    如上图所示,玩家可在对阵列表中查看到队友/敌人是否开启麦克风的状态;