语音电台即主播模式目前主要应用于大型MMO类游戏。在用户进入游戏界面时,就可以看到语音房间的入口。因一个游戏内可能有多个房间,如主播房间、国家指挥房间、帮派指挥房间等,入口通常会用菜单选项表示,便于用户切换。主播和指挥房间通常由游戏根据主播、国家指挥等身份已设定好,通常为固定的房间号。主播使用游密提供的主播工具进行语音直播,听众端集成游密IM SDK+Talk SDK。
下述为语音电台听众端的接口调用流程,前提是保证Talk SDK 和IM SDK都已经正确添加导入到项目工程中,并可以正常调用SDK 中的API接口。
Talk SDK中,继承类IYouMeEventCallback并实现其纯虚函数(回调函数),在调用初始化函数时传入指向子类的指针。回调都在子线程中执行,不能用于更新UI等耗时操作。 首先声明一个类CYMEventCallback(类名可自取)来注册回调事件:
class CYMEventCallback : public IYouMeEventCallback
{
public:
virtual void onEvent(const YouMeEvent event, const YouMeErrorCode error, const char * room, const char * param) override;
}
监听OnEvent
事件,在该类YouMeVoiceEngineImp中实现以下方法:
//监听各类回调事件
void onEvent(const YouMeEvent event, const YouMeErrorCode error, const char * room, const char * param) override;
{
switch (event)
{
//case案例只覆盖了部分,仅供参考,详情请查询枚举类型YouMeEvent
case YOUME_EVENT_INIT_OK:
//"初始化成功";
break;
case YOUME_EVENT_INIT_FAILED:
// "初始化失败,错误码:" + errorCode;
break;
case YOUME_EVENT_JOIN_OK:
//"加入频道成功";
break;
case YOUME_EVENT_LEAVED_ALL:
// "离开频道成功";
break;
case YOUME_EVENT_JOIN_FAILED:
//进入语音频道失败
break;
case YOUME_EVENT_REC_PERMISSION_STATUS:
//"通知录音权限状态,成功获取权限时错误码为YOUME_SUCCESS,获取失败为YOUME_ERROR_REC_NO_PERMISSION(此时不管麦克风mute状态如何,都没有声音输出)";
break;
case YOUME_EVENT_RECONNECTING:
//"断网了,正在重连";
break;
case YOUME_EVENT_RECONNECTED:
// "断网重连成功";
break;
case YOUME_EVENT_OTHERS_MIC_OFF:
//其他用户的麦克风关闭:
break;
case YOUME_EVENT_OTHERS_MIC_ON:
//其他用户的麦克风打开:
break;
case YOUME_EVENT_OTHERS_SPEAKER_ON:
//其他用户的扬声器打开:
break;
case YOUME_EVENT_OTHERS_SPEAKER_OFF:
//其他用户的扬声器关闭
break;
case YOUME_EVENT_OTHERS_VOICE_ON:
//其他用户开始讲话
break;
case YOUME_EVENT_OTHERS_VOICE_OFF:
//其他用户停止讲话
break;
case YOUME_EVENT_MY_MIC_LEVEL:
//麦克风的语音级别,值是放在error这个整形参数了里
break;
case YOUME_EVENT_MIC_CTR_ON:
//麦克风被其他用户打开
break;
case YOUME_EVENT_MIC_CTR_OFF:
//麦克风被其他用户关闭
break;
case YOUME_EVENT_SPEAKER_CTR_ON:
//扬声器被其他用户打开
break;
case YOUME_EVENT_SPEAKER_CTR_OFF:
//扬声器被其他用户关闭
break;
case YOUME_EVENT_LISTEN_OTHER_ON:
//取消屏蔽某人语音
break;
case YOUME_EVENT_LISTEN_OTHER_OFF:
//屏蔽某人语音
break;
default:
//"事件类型" + eventType + ",错误码" +
break;
}
}
初始化Talk SDK ,游戏启动时即可调用游密初始化,Talk的SDK 和IM的SDK都需要先初始化。调用的接口为:
YouMeErrorCode init(
const char* strAppKey,
const char* strAPPSecret,
YOUME_RTC_SERVER_REGION serverRegionId,
const char* strExtServerRegionName);
IM SDK的 YIMManager::CreateInstance()->Init("YoumeAppkey"," YoumeAppSecurity", "");
参数说明
strAppKey
:从游密后台申请到的 app key, 这个是你们应用程序的唯一标识。
strAPPSecret
:对应 strAPPKey 的私钥, 这个需要妥善保存,不要暴露给其他人。
serverRegionId
:设置首选连接服务器的区域码。
void SetLoginCallback(IYIMLoginCallback* pCallback)
void SetChatRoomCallback(IYIMChatRoomCallback* pCallback)
void SetMessageCallback(IYIMMessageCallback* pCallback)
// 回调接口方法实现需自行补充
class MyIM: public IYIMLoginCallback, IYIMMessageCallback, IYIMChatRoomCallback
{
...
YIMManager::CreateInstance()->SetLoginCallback(this);
YIMManager::CreateInstance()->SetMessageCallback(this);
YIMManager::CreateInstance()->SetChatRoomCallback(this);
...
virtual void OnLogin(YIMErrorcode errorcode, const XString& userID) override
{
if (errorcode == YIMErrorcode_Success)
{
std::cout << "login success." << std::endl;
}
}
// 其余回调接口重载
...
}
Login
YIMErrorcode Login(const XCHAR* userID, const XCHAR* passwd ,const XCHAR* token);
参数说明
userID
:用户ID,由调用者分配,不可为空字符串,只可由字母或数字或下划线组成,长度限制为255字节。
passwd
:用户密码,不可为空字符串,如无特殊要求可以设置为固定字符串。
token
:使用服务器token验证模式时使用该参数,否则使用默认值""即可,由restAPI获取token值。
Talk SDK:主播和听众需要加入同一个语音频道,主播端通过主播工具启动麦克风开启说话,听众端以听众的身份加入,不启用麦克风,而是打开扬声器收听;
IM SDK:主播和听众加入到同一个群聊频道,用于接收和发送消息,听众可以在游戏端向主播发送文字消息或者礼物消息。
调用接口:
joinChannleSingleMode
:加入主播语音频道(Talk)
JoinChatRoom
:加入主播的文本群聊频道(IM)
听众端发送消息,主播端收看。用于在语音直播中,听众端发送文字消息,类似弹幕到群聊频道中,主播在主播工具中接收显示。
发送文本消息:SendTextMessage
听众端发送礼物消息,礼物发送如果需要统计积分需要在后台处配置礼物细信息,配置步骤见下“运营管理平台-使用说明-配置礼物信息”,比如听众需要给主播打赏礼物,发送棒棒糖、火箭等礼物。
发送礼物消息:SendGift
YIMErrorcode SendGift(const XCHAR* anchorID, const XCHAR* channel, int giftId, int giftCount, const char* extraParam, XUINT64* requestID)
参数说明
anchorID
:主播的userid,也就是后台配置的主播账号。
channel
:主播所在的IM频道。
giftId
:后台"主播管理"里面的"礼物配置"里面对应的礼物标识,0表示只是留言。
giftCount
:礼物物品数量。
extraParam
: 扩展内容,参考ExtraGifParam类熟悉说明 extParam为必填参数,以免发送的礼物消息数据没入库统计
。
requestID
: 消息序列号。
示例
ExtraGifParam extraGifParam = new ExtraGifParam();
extraGifParam.NickName = "测试名";
extraGifParam.ServerArea = "99服";
extraGifParam.Location = "1区";
extraGifParam.Score = 50000;
extraGifParam.Level = 1;
extraGifParam.VipLevel = 3;
extraGifParam.Extra = "";
YIMErrorcode ymErrorcode = YIMManager::CreateInstance()->GetMessageManager()->SendGift("主播id", "IM频道", 2, 2, extraGifParam,ref serial);
返回值
如果成功返回YOUME_SUCCESS,否则返回错误码,具体请参考YouMeErrorCode类型定义。
游密“运营管理平台”内嵌于游密官网控制台的游戏界面,功能包含主播配置、禁言管理、关键字管理等。 路径:游密官网控制台 https://console.youme.im/ 访问:游戏-运营管理平台。
运营管理平台功能入口默认为关闭状态,需在游密 QQ 群或向游密商务人员申请开放入口,服务价格请联系游密商务。
主播配置:
添加主播账号:注意:主播游戏ID需要和主播账号一致性:
添加主播的功能主要是创建主播账号和密码,用于主播登录主播助手(Windows 客户端工具)和主播消息助手(页面):
添加主播排班:
选择要上播的主播和上播的频道:
配置礼物信息:
听众端需要给主播打赏礼物时,发送的礼物消息,需要先在这里配置礼物信息,发送的礼物消息才能会把积分统计到数据表中。
公共部分:
appkey:app在游密通信云注册申请的appkey,可在游密后台进行查看。
identifier:用户名标识,调用REST API一般为app管理员账号,如“admin”。
curtime:当前UTC时间戳,从1970年1月1日0点0分0秒开始到现在的秒数(string类型)。
checksum:sha1(appsecret + curtime),两个参数拼接的字符串,进行sha1计算,转化成16进制字符(string,小写)。其中appsecret可在游密后台进行查看。
注:
checksum有效期:出于安全考虑,每个checksum有效期为5分钟,建议每次请求都生成新的checksum,同时服务器进行NTP同步时间。
主播功能分为“中国大陆”和“新加坡”两个区域。两个区域数据不互通。
接口的域名跟着的服务区域进行变化,具体如下:
中国大陆 接口域名:api.youme.im
新加坡 接口域名:sgapi.youme.im
下面的具体接口说明,均以中国大陆为例。
查询主播基本信息
https://api.youme.im/v1/im/query_anchor_info?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"UserID": "wrqw",
"AnchorID": "juzi"
}
body为json格式,各个字段解释如下:
UserID
: 主播用户游戏ID,app内唯一,字符串。
AnchorID
: 主播用户在游密控制台上的登录账号名,字符串。
以上两个用户信息至少给定一个。
{
"Nickname" : "wqerw",
"ProfilePhoto" : "https://sl.youme.im/f1d42a6f57c68da44d7a6b3c656e83fc.png",
"Signature" : "个性签名",
"UserID": "wrqw",
"AnchorID": "juzi"
}
Nickname
: 昵称。
ProfilePhoto
: 头像。
Signature
: 签名。
查询多个主播基本信息。
https://api.youme.im/v1/im/query_multi_anchor_info?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"UserList" : [
{
"UserID": "1133"
}]
}
body为json格式,各个字段解释如下:
UserList
: 可选字段,主播用户列表,为空数组时返回所有主播用户列表,数组。
UserID
: 主播用户游戏ID,app内唯一,字符串。
UserSeq
: 可选字段,"UserList"为空时有效,主播用户序列号,首次获取时置0。
Limit
: 可选字段,"UserList"为空时有效,拉取主播用户个数限制。
{
"UserList" : [
{
"NickName" : "请问",
"ProfilePhoto" : "https://sl.youme.im/f1d42a6f57c68da44d7a6b3c656e83fc.png",
"Signature" : "个性签名",
"UserID" : "1133",
"AnchorID": "taozi"
}
]
}
UserList
:用户列表。
Nickname
: 昵称。
ProfilePhoto
: 头像。
Signature
: 签名。
根据时间段查询主播某天收到的积分信息或积分排行榜。
https://api.youme.im/v1/im/query_im_user_score_rank?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body实例1
{
"UserID":"wrqw",
"Date":"20170420",
"Limit": 5,
"NeedFavoriteAnchor": 1
}
body为json格式,各个字段解释如下:
UserID
:主播用户ID,app内唯一,字符串。
Date
:日期,格式为YYYYMMDD
。
Summary
:可选字段,是否汇总信息。
SvrArea
:可选字段,用户区服,查询积分排行榜时有效。
Limit
:可选字段,最大信息条数(大于0,不大于200),查询积分排行榜时有效。
NeedFavoriteAnchor
: 是否需要返回排行榜中每个用户对应的送礼物最多的主播信息,1是需要返回,其它值不需要,整数,可选字段,查询积分排行榜时有效。
响应实例1
{
"ScoreCount" : 2,
"ScoreList" : [
{
"Score" : "10000",
"GiftCount" : "100",
"SendID" : "luffy",
"NickName": "nick2",
"SvrArea": "area2",
"Location": "loca2",
"FavoriteAnchor": [
{
"AnchorID": "anchor03",
"GiftCount": 30,
"GiftScore": 1920
}
]
},
{
"Score" : "999",
"GiftCount" : "100",
"SendID" : "sanji",
"NickName": "nick1",
"SvrArea": "area1",
"Location": "loca1",
"FavoriteAnchor": [
{
"AnchorID": "anchor01",
"GiftCount": 20,
"GiftScore": 500
}
]
}
]
}
ScoreCount
:积分总数。
ScoreList
:积分对象列表,最多200条。
NickName
:用户昵称。
Location
:用户阵营。
FavoriteAnchor
:是该用户送礼物最多的主播信息。
(AnchorID
:是接收礼物的主播ID,GiftScore
:是主播收到的礼物积分,GiftCount
:是主播收到的礼物个数)。
若用户送礼物最多的有好几个主播,则一并返回(最多返回10个)。
body实例2
{
"UserID":"wrqw",
"Date":"20170420",
"Summary" : "1"
}
{
"GiftTotal" : "123",
"Score" : "10999"
}
GiftTotal
:礼物总数。
Score
: 积分总数。
根据频道ID、日期和主播用户ID查询主播用户排班信息。
https://api.youme.im/v1/im/query_anchor_sche?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"ChannelID": "2011234",
"Date": "20170420",
"AnchorID" : "user1"
}
body为json格式,各个字段解释如下:
ChannelID
: 用户所在频道ID,字符串,必填参数。
Date
: 日期,字符串,格式为YYYYMMDD,可选参数。当未指定时,则查询当天日期的排班信息(注:查询时隐含只查询出排班还未过期的排班信息,即排班开始时间大于查询时间,或者排班结束时间大于查询时间)。
AnchorID
: 主播用户ID,字符串,选填,不填时拉取到的是该频道的所有主播排班信息。
{
"ActionStatus" : "OK",
"ErrorCode" : 0,
"ErrorInfo" : "",
"Sche" : [
{
"ChannelID" : "2011234",
"AnchorID" : "user1",
"Date" : "20170420",
"BeginTime" : "17:00:00",
"EndTime" : "18:00:00",
"GameID" : "u#123456"
}
]
}
GameID
:主播用户的游戏ID。
根据发送礼物的用户ID、主播用户ID、区服名、频道ID查询满足条件的礼物积分。
https://api.youme.im/v1/im/query_im_gift_score?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"StartDate": "20170517",
"EndDate": "20170517",
"UserID": "user1"
}
body为json格式,各个字段解释如下:
StartDate
: 查询起始日期,字符串,格式为YYYYMMDD,起始日期若给定,则与当前自然日期相比不可以往前超过35天,可选字段。
EndDate
: 查询结束日期,字符串,格式为YYYYMMDD,可选字段。
注:若StartDate和EndDate同时不给定,则查询历史累积至当前自然日期的。
UserID
: 发送礼物的用户ID,字符串,可选字段。
AnchorID
: 收到礼物的主播用户ID,字符串,可选字段。
SvrArea
: 频道所在区服名,字符串,可选字段。
ChannelID
: 频道ID,字符串,可选字段。
{
"NickName": "nick1",
"Location": "loca1",
"GiftScore": 1000,
"GiftCount": 50
}
NickName
:用户昵称。
Location
:用户阵营。
GiftCount
:礼物个数。
GiftScore
:礼物积分。
根据接收礼物的主播用户ID、区服名、频道ID查询满足条件的礼物积分排行榜。
https://api.youme.im/v1/im/query_im_gift_score_rank?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"StartDate": "20170517",
"EndDate": "20170517",
"Limit": 10,
"NeedFavoriteAnchor": 1
}
body为json格式,各个字段解释如下:
StartDate
: 查询起始日期,字符串,格式为YYYYMMDD,起始日期若给定,则与当前自然日期相比不可以往前超过35天,可选字段。
EndDate
: 查询结束日期,字符串,格式为YYYYMMDD,可选字段。
注:若StartDate和EndDate同时不给定,则查询历史累积至当前自然日期的。
AnchorID
: 收到礼物的主播用户ID,字符串,可选字段。
SvrArea
: 频道所在区服名,字符串,可选字段。
ChannelID
: 频道ID,字符串,可选字段。
OrderBy
: 排序字段,1是按礼物积分排序,2是按礼物个数排序,不携带时默认按照礼物积分排序,整数,可选字段。
Limit
: 返回排行榜记录的最大条数,默认值50,最大200,整数,可选字段。
NeedFavoriteAnchor
: 是否需要返回排行榜中每个用户对应的送礼物最多的主播信息,1是需要返回,其它值不需要,整数,可选字段。
{
"RankCount": 2,
"RankList": [
{
"UserID": "user2",
"NickName": "nick2",
"SvrArea": "area2",
"Location": "loca2",
"GiftScore": 1060,
"GiftCount": 20,
"FavoriteAnchor": [
{
"AnchorID": "anchor03",
"GiftCount": 10,
"GiftScore": 932
}
]
},
{
"UserID": "user1",
"NickName": "nick1",
"SvrArea": "area1",
"Location": "loca1",
"GiftScore": 1050,
"GiftCount": 20,
"FavoriteAnchor": [
{
"AnchorID": "anchor02",
"GiftCount": 15,
"GiftScore": 980
}
]
}
]
}
RankCount
:排行榜列表个数。
NickName
:用户昵称。
Location
:用户阵营。
FavoriteAnchor
:该用户送礼物最多的主播信息。
(AnchorID
:接收礼物的主播ID,GiftScore
:主播收到的礼物积分,GiftCount
:主播收到的礼物个数)。
若用户送礼物最多的有好几个主播,则一并返回(最多返回10个)。
查询指定频道的主播用户在其排班内的上麦时长、接收礼物积分以及相关的进出频道、开关麦克风等信息。
https://api.youme.im/v1/im/query_anchor_monitor?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"Date": "20170605",
"ChannelID": "1234",
"AnchorID": "gameid",
"NeedActionDetail": 1
}
body为json格式,各个字段解释如下:
Date
:查询日期,格式为YYYYMMDD,字符串。
ChannelID
:主播频道ID,字符串。
AnchorID
:主播用户ID,字符串。
NeedActionDetail
:是否需要返回操作详情信息(指主播进出频道和开关麦克风的时间信息),1是需要返回,其他值不返回,整数。
{
"Date": "20170605",
"ChannelID": "1234",
"AnchorID": "gameid",
"NickName": "nickname",
"MicDuration": 60,
"GiftScore": 1000,
"ActionDetail": [
{
"ActionTime": "14:00:01",
"ActionType": 1
},
{
"ActionTime": "14:30:00",
"ActionType": 2
},
{
"ActionTime": "14:00:05",
"ActionType": 3
},
{
"ActionTime": "14:20:00",
"ActionType": 4
},
{
"ActionTime": "14:22:00",
"ActionType": 3
}
{
"ActionTime": "14:29:00",
"ActionType": 4
}
]
}
NickName
:主播用户昵称。
MicDuration
:上麦时长。
GiftScore
:礼物积分。
ActionTime
:操作时间。
ActionType
:操作类型,取值有1(进入频道)、2(退出频道)、3(开启麦克风)、4(关闭麦克风)。
本接口只针对主播用户,查询所有主播用户所收到的礼物积分排行榜。
https://api.youme.im/v1/im/query_anchor_score_rank?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"StartDate": "20170702"
}
body为json格式,各个字段解释如下:
StartDate
: 查询起始日期,字符串,格式为YYYYMMDD,起始日期若给定,则与当前自然日期相比不可以往前超过35天,必选字段。
EndDate
: 查询结束日期,字符串,格式为YYYYMMDD,可选字段。
SvrArea
: 频道所在区服名,字符串,可选字段。
ChannelID
: 频道ID,字符串,可选字段。
OrderBy
: 排序字段,1是按礼物积分排序,2是按礼物个数排序,不携带时默认按照礼物积分排序,整数,可选字段。
Limit
: 返回排行榜记录的最大条数,默认值50,最大200,整数,可选字段。
{
"RankList":[
{
"AnchorID": "taozi",
"GameID": "u#52235",
"NickName": "陶子",
"GiftScore": 106,
"GiftCount": 25
},
{
"AnchorID": "juzi",
"GameID": "u#45331",
"NickName": "橘子",
"GiftScore": 97,
"GiftCount": 15
}
]
}
根据游戏应用ID查询主播频道。
https://api.youme.im/v1/im/query_anchor_channel?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"AppID" : 111
}
body为json格式,各个字段解释如下:
AppID
: 游戏应用ID,int。
{
"ActionStatus" : "OK",
"ErrorCode" : 0,
"ErrorInfo" : "",
"Channel" : [
{
"CID" : "test", //频道ID
"CName" : "user1" //频道名称
"Areaid" : "01,02,03", //区服 ID
"Imid" : "123" //关联IM频道ID
}
]
}
根据主播用户ID、开始时间、结束时间查询满足条件的礼物积分详情。
https://api.youme.im/v1/im/query_im_gift_score_detail?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"StartDate": "20210326",
"EndDate": "20210326",
"AnchorID": "anchor1"
}
body为json格式,各个字段解释如下:
StartDate
: 查询起始日期,字符串,格式为YYYYMMDD,起始日期若给定,则与当前自然日期相比不可以往前超过35天,必选字段。
EndDate
: 查询结束日期,字符串,格式为YYYYMMDD,必选字段。
注:若StartDate和EndDate同时不给定,则查询历史累积至当前自然日期的。
AnchorID
: 收到礼物的主播用户ID,字符串,必选字段。
{
"Count": 1,
"GiftScoreList" : [
{
"AnchorID": "anchor1" //主播ID
"GiftID" : "123", //礼物ID
"GiftName" : "小礼包" //礼物名字
"GiftScore" : 1, //单个礼物的积分
"GiftCount" : 10, //礼物总数
"GiftTotalScore" : 10, //礼物总积分
"GiftDate" : "2020-05-31" //礼物日期
}
}
Count
:返回礼物详情的个数。
GiftID
:礼物id。
GiftName
:礼物名字。
GiftScore
:单个礼物积分。
GiftCount
:礼物是总数。
GiftTotalScore
:礼物的总积分。
GiftDate
:礼物统计时间。
IM SDK的sendTextMessage接口如何传参数,可以在“主播工具-首页-游密主播消息助手-礼物与消息”中显示“消息”的昵称、等级、服务器等信息?
打开主播工具-点击右上角“自定义消息”,在自定义消息中设置json格式的解析,然后在客户端IM SDK中调用sendTextMessage接口时,将msgContent参数设置为该json格式的文本内容。 附1:自定义消息中设置json格式的解析
function (jdata){ var obj = JSON.parse(jdata); var result = { "uid" :false, "uname" :obj.uname, "vip" : obj.vip, "text" :obj.text, //消息 "server":obj.server, //服务器 "level" :obj.level, "local":obj.local //大区 }; return result; }
附2:IM SDK中调用sendTextMessage代码示例:
String mMessageContent="{\"uname\":\"kitty\",\"text\":\"hello\"}"; YIMClient.getInstance().sendTextMessage(recver,YIMConstInfo.ChatType.RoomChat mMessageContent,attachParam:"",new YIMEventCallback.ResultCallback<SendMessage>(){..})
IM SDK的sendGift接口如何传参数,可以在“主播工具-首页-游密主播消息助手-礼物与消息”中显示“礼物”的昵称、礼物、服务器等信息?
在sendGift接口的第五个参数yimExtraGifparam处传值,主播工具会解析。
YIMExtraGifParam yimExtraGifParam = new yimExtraGifParam(nickName:"hello",serverArea:"ch",location:"",(long)1,level:1,vipLevel:1,extparam:"等级:1"); YIMClient.getInstance().sendGift(anchorid:"cwwu123",channel:"123456",giftid:1,giftCount:5,yimExtraGifParam,new YIMEventCallback.ResultCallback<SendMessage>(){...})
调用发送礼物接口sendGift时报错,errorcode为无效参数。
检查sendGift接口的第五个参数yimExtraGiftParam,需对其进行初始化并赋值,可参考上面第2个问题的答案中的代码。
两部手机放一起时有很大的啸叫声有没有什么办法消除或者降低呢?
通常是因为两台手机靠得太近,麦克风相互循环增益导致的,建议测试时把两台设备放远一些,或者调低音量。
使用主播工具点击播放战歌,但是自己听不到bgm。
需要开启监听,点击主播工具右上角的“本地战歌使用”,会出现监听。
不需要,主播工具中已集成“播放战歌”接口。
语音内容检测即语音鉴黄、反垃圾检测。该功能属于拓展功能,需联系游密方开通配置后调用接口才生效。主要调用方为业务后台服务端,业务方需要设置接收鉴黄\反垃圾检测结果的回调地址,当游密服务端检测到用户的语音流有违规情况时,把检测结果回调给到业务方的服务器。
接口 | 含义 |
---|---|
set_room_audio_mix_with_green |
设置用户/房间语音反垃圾检测,用户加入频道开麦克风后可调用设置 |
del_room_audio_green |
关闭用户/房间语音反垃圾检测,建议用户离开频道时调用 |
Callback |
语音反垃圾回调,会把检测结果回调给到业务端服务器 |
https://api.youme.im/v2/im/set_room_audio_mix_with_green?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
格式如下
body为json格式,各个字段解释如下:
"RoomID": 字符串,游戏频道ID,必选字段。
"UserId": 字符串,用户ID,必填字段。
"CallBack": 回调地址,把检测结果回调给到业务端服务器,必填。
" Forward ": bool 类型,回调透传。必填设置为 true ,直接回调到客户。
" clientInfo ": json对象;可以参照下列说明,属于客户自行选择是否传响应的字段。
"clientInfo": {
"imei": "", //硬件设备码
"userNick": "", //用户昵称
"deviceId": "", //设备ID
"imsi": "", //运营商设备码
"mac": "xxxx", //mac 地址
"userId": "biant", //用户 ID唯一标识,建议传入 UID,便于回查。
"roomId": "leef", //房间 ID
"uip": "111.111.111.111", //用户 IP
"umid": "" //设备指纹
},
body实例
{
"UserId": "biant",
"clientInfo": {
"imei": "",
"userNick": "",
"deviceId": "",
"imsi": "",
"mac": "xxxx",
"userId": "biant",
"roomId": "leef",
"uip": "111.111.111.111",
"umid": ""
},
"Forward": true,
"RoomID": "leef",
"CallBack":"http://94.191.22.224/youme_audio_green"
}
{
"ActionStatus" : "OK",
"ErrorCode" : 0,
"ErrorInfo" : ""
}
https://api.youme.im/v2/im/del_room_audio_green?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
格式如下
body为json格式,各个字段解释如下:
"RoomID": 游戏频道ID,字符串,必选字段。
"UserId": 用户ID,字符串,选填字段。
body实例
{
"RoomID":"123456",
"UserId": "youme_01"
}
{
"ActionStatus" : "OK",
"ErrorCode" : 0,
"ErrorInfo" : ""
}