开发者中心

GT_Voice语音直播Unity3d SDK集成说明书

文档编号:14001B6-DD6-1
版权所有 © 2012 北京瑞文博凡信息技术有限公司
公司网址:http://www.game-talk.net

版权申明
本文档包含了来自北京瑞文博凡信息技术有限公司的机密技术和商业信息,这些信息作为北京瑞文博凡信息技术有限公司专用。接受本文档即视为表示同意对其内容保密,并且未经北京瑞文博凡信息技术有限公司书面许可,不得复制、泄露或散布本文档的全部或部分内容。
本文档及其描述的内容及产品的著作权和版权受有关法律保护,对本文档内容的任何形式的非法复制,泄露或散布,将导致承担相应的法律责任。
北京瑞文博凡信息技术有限公司保留在不另行通知的情况下修改本文档的权利,并保留对本文档内容的全部解释权。
 

1.概述 ( Overview )

1.1 范围 ( Scope )

定义Gt语音直播sdk客户端集成接口

1.2 发布 ( Issue )

本文档发布于北京瑞文博凡信息技术有限公司技术部、产品部及此项目合作公司相关人员。本文档不属于客户契约性文档,不能发布予客户

1.3 综述 ( Brief )

2.定义 ( Definition )

2.1 术语 ( Terminologies )

术语 定义
appId 应用编号(需向GT申请获取)

2.2 约束 ( Constraints )

3.运行环境

iOS 8.0及以上、Android4.0及以上,真机环境

4.集成指南

4.1 参数准备

(1)向GT申请appId,否则使用会失效;

4.2 SDK集成

4.2.1 iOS平台配置说明

(1)将iOS文件夹拖拉到unity3d工程的Assets/Plugins目录下,最终效果如图

(2)通过untiy3d平台打包成xcode工程
在工程中Build Setting->OtherLinker Flags添加-ObjC

(3)iOS需要增加麦克风权限描述配置。在Info中增加以下配置
Privacy - Microphone Usage Description

(4)在xcode工程,在工程中添加引用库,如果项目已经存在不必重复添加libstdc++.6.0.9.tbd,libc++.tbd,ImageIO.framework选择工程->Build Phases->+  最终效果如图

4.2.2 Android平台配置

(1)将Android复制到unity3d工程Assets/Plugins/目录下面。
     
(2)AndroidManifest.xml配置文件中需要添加的权限如下:
如果有重复不必添加

 <!-- voice live-->
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
  <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  <uses-permission android:name="android.permission.GET_TASKS" />
  <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
  <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
  <!--voice live-->

4.2.3 使用简介

功能API接口全部在VoiceLiveAPI.cs类中实现。

5.VoiceLiveAPI接口设计

5.1 初始化

注:游戏初始化时调用此接口 保证后续能够安全使用语音功能;

5.1.1 调用接口

/初始化/
public void VoiceSDK_Init(string appId, bool isTest, System.Action response = null)

接口字段 类型 是否必填 说明
appId String 应用编号(需向GT申请,统一由GT分配)
isTest bool 传false
response System.Action 回调接口(josn格式)

示例:VoiceLiveAPI.Instance.VoiceSDK_Init(“100000”, false, (msg) =>
       {
           sjson = “初始化” + msg;
       });

5.1.2 回应结果

{“result”:(int) result,“msg”:(string) msg }

协议字段 类型 是否必填 说明
result int 处理结果,成功为0,其他错误
msg string 返回的消息

5.2 登录房间

5.2.1 调用接口

public void VoiceSDK_userLogin( string roomId, string userId, string nickname,string type, string ext, System.Action response = null)

协议字段 类型 是否必填 说明
roomId string 房间编号
userId string 玩家userid,不能超过45个字符
nickname string 玩家昵称,不能超过45个字符
type string 用户类型(0为观众 1为主播)
ext string 扩展字段
response System.Action 回调接口(josn格式)

示例:VoiceLiveAPI.Instance.VoiceSDK_userLogin(“100000”, sUserid, sNickname, sUserType, “ext”, (msg) =>
           {
               sjson = “登录房间” + msg;
           });

5.2.2 回应结果

{“result”:(int)result,“msg”:(string)msg,“anchorId”:(string)anchorId, ,“anchorOnlive”:(int) anchorOnlive }

协议字段 类型 是否必填 说明
result int 处理结果,成功为0,其他错误
msg string 返回的消息
anchorOnlive int 当前房间主播在线状态,0为在线,1为不在线
anchorId string 主播id

5.3 登出房间

5.3.1 调用接口

public void VoiceSDK_userLogOut(System.Action response = null)

协议字段 类型 是否必填 说明
response System.Action 回调接口(josn格式)

示例:VoiceLiveAPI.Instance.VoiceSDK_userLogOut((msg) =>
           {
               sjson = “登出房间” + msg;
           });

5.3.2 回应结果

{“result”:(int) result,“msg”:(string) msg }

协议字段 类型 是否必填 说明
result int 处理结果,成功为0,其他错误
msg string 返回的消息

5.4 查询房间人数

5.4.1 调用接口

public void VoiceSDK_queryUsers(System.Action response = null)

协议字段 类型 是否必填 说明
response System.Action 回调接口(josn格式)

示例:  VoiceLiveAPI.Instance.VoiceSDK_queryUsers((msg) =>
           {
               sjson = “查询房间人数” + msg;
           });

5.4.2 回应结果

{“appId”:(string) appId,“users”:(int) users,“roomId”:(string) roomId }

协议字段 类型 是否必填 说明
appId string 应用编号
users int 房间人数
roomId string 房间编号

5.5 暂停收听

5.5.1 调用接口

public void VoiceSDK_stopPlay()

5.6 恢复收听

5.6.1 调用接口

public void VoiceSDK_startPlay()

5.7 查询是否在播放

5.7.1 调用接口

public bool VoiceSDK_isPlaying()
true:正在播放  false:暂停播放

5.8 发送文本消息

5.8.1 调用接口

public void VoiceSDK_userSendVoiceRoomMessage( string textMsg, string ext, string ext2)

协议字段 类型 是否必填 说明
textMsg string 发送内容
ext string 扩展字段
ext2 string 扩展字段

5.9 接收文本消息通知

5.9.1 通知回调

EventListenerManager.AddListener(ListenerEven.onVoiceLiveRoomReceiveMsg, (obj) =>
       {
            Debug.Log (“收到消息:” + obj.ToString ());
    });
返回内容:
{“roomId”:(string)roomId,“userId”:(string)userId,“ext2”:(string)ext2,“nickname”:(string)nickname,“ext”:(string)ext,“appId”:(string)appId,“msg_type”:(string)msg_type,“msgId”:(string)msgId,“payload”:(string)payload }

协议字段 类型 是否必填 说明
appId string 应用编号
roomId string 房间编号
userId string 玩家userid
nickname string 玩家昵称
msgId string 消息id
payload string 消息内容(msg_type为6时payload=0主播在线,payload=1主播离线)
msg_type string 消息类型(1为文本消息,6为主播在线/离线)
ext string 扩展字段
ext2 string 扩展字段

5.10 麦操作申请

5.10.1 调用接口

public void VoiceSDK_micActionWithTargetId(string targetId, int msgType, string ext)

协议字段 类型 是否必填 说明
targetId string 被申请连麦方userId
msgType int 消息类型:0上麦,1下麦,2禁麦,3解除禁麦,4强制下麦,5主播上麦,6主播下麦
ext string 扩展字段

5.10.2 回应结果

{“result”:(int) result,“msg”:(string) msg }

协议字段 类型 是否必填 说明
result int 处理结果,成功为0,其他错误
msg string 返回的消息

5.11 麦操作申请通知

{“msgType”:(int) msgType,“nickname”:(string) nickname,“role”:(int) role,“userId”:(string) userId }

协议字段 类型 是否必填 说明
userId string 玩家userid
nickname string 玩家昵称
role int 角色:0是观众,1是主播
msgType int 消息类型:0上麦,1下麦,2禁麦,3解除禁麦,4强制下麦,5主播上麦,6主播下麦
ext string 扩展字段

5.12 麦操作回复

5.12.1 调用接口

public void VoiceSDK_micActionResultWithMicActionResultModel(string targetId, int resType, string nickname)

协议字段 类型 是否必填 说明
targetId string 申请连麦方userId
resType int 回复类型:0同意,1拒绝
nickname string 玩家昵称

5.12.2 回应结果

{“result”:(int) result,“msg”:(string) msg }

协议字段 类型 是否必填 说明
result int 处理结果,成功为0,其他错误
msg string 返回的消息

5.13 麦操作回复通知

{" resType ":(int) resType,“nickname”:(string) nickname, “userId”:(string) userId }

协议字段 类型 是否必填 说明
userId string 玩家userid
nickname string 玩家昵称
resType int 0同意,1拒绝

5.14 查询连麦用户/申请列表

5.14.1 调用接口

public void VoiceSDK_micQueryWithMsgType(int msgType)

协议字段 类型 是否必填 说明
msgType int 查询类型:0连麦用户,1申请列表

5.14.2 回应结果

{“result”:(int)result,“msg”:(string)msg,“msgType”:0,“ApplyMicInfos”:[ ApplyMicInfo], “UserMicInfos”:[ UserMicInfo] }

协议字段 类型 是否必填 说明
result int 处理结果,成功为0,其他错误
msg string 返回的消息
msgType int 查询类型:0连麦用户,1申请列表
ApplyMicInfos ApplyMicInfo的json数组
申请列表,请参考demo
UserMicInfos UserMicInfo
的json数组
连麦用户,请参考demo

ApplyMicInfo

协议字段 类型 是否必填 说明
userId string 玩家userid
nickname string 玩家昵称
role int 角色:0是观众,1是主播

UserMicInfo

协议字段 类型 是否必填 说明
userId string 玩家userid
nickname string 玩家昵称
role int 角色:0是观众,1是主播
status int

5.15 暂停某个用户声音

5.15.1 调用接口

public void VoiceSDK_pasueVoiceWithUserId(string targetId)

协议字段 类型 是否必填 说明
targetId string 暂停用户声音的userId

5.16 打开某个用户声音

5.16.1 调用接口

public void VoiceSDK_openVoiceWithUserId(string targetId)

协议字段 类型 是否必填 说明
targetId string 打开用户声音的userId

5.17 设置播放音乐本地地址

5.17.1 调用接口

public void VoiceSDK_setAudioFileWithPaths(List paths)

协议字段 类型 是否必填 说明
paths List 传音乐文件的本地路径

例:  
string  file_SaveUrl = string.Format(“{0}/{1}.mp3”, Application.persistentDataPath, “thatgirl”);
string  file_SaveUrl1 = string.Format(“{0}/{1}.mp3”, Application.persistentDataPath, “zuimeideqidai”);
List paths = new List();
               paths.Add(file_SaveUrl);
               paths.Add(file_SaveUrl1);
 VoiceLiveAPI.Instance.VoiceSDK_setAudioFileWithPaths(paths);

5.18 播放音乐

5.18.1 调用接口

public void VoiceSDK_play()
注:地址设置完以后才可播放音乐。

5.19 暂停播放音乐

5.19.1 调用接口

public void VoiceSDK_pause()

5.20 停止播放音乐

5.20.1 调用接口

public void VoiceSDK_stop()

5.21 播放下一首音乐

5.21.1 调用接口

public void VoiceSDK_next()

5.22 设置播放音乐本地音量

5.22.1 调用接口

public void VoiceSDK_sendClientVolume(float Volume)

协议字段 类型 是否必填 说明
Volume float 范围0~1

5.23 设置播放音乐接收方音量

5.23.1 调用接口

public void VoiceSDK_receiveClientVolume(float Volume)

协议字段 类型 是否必填 说明
Volume float 范围0~1

5.24 设置播放音乐索引

5.24.1 调用接口

public void setPlayAudioWithIndex(int index)

协议字段 类型 是否必填 说明
paths int 按照设置播放音乐本地地址接口传参顺序设置。比如索引设置的是0,那么播放的是传的第一个地址;设置完索引直接播放对应的音乐