Talk SDK for iOS API接口手册
本页各接口按语法、功能、参数说明、返回值、异步回调介绍;无参数、无返回值或无独立异步完成事件时明确标注。返回类型、回调载荷及线程以本平台封装为准。
相关异步/同步处理方法介绍
游密语音引擎SDK接口调用都会立即返回,凡是本身需要较长耗时的接口调用都会采用异步回调的方式,所有接口都可以在主线程中直接使用。回调都在子线程中进行,请注意不要在回调中直接操作UI主线程。
同步接口按各自返回类型解释;异步接口返回成功仅表示请求已受理,最终结果需等待对应事件。同步返回错误时立即处理,不继续等待成功事件。回调中避免耗时任务;涉及音量的通用事件可能用错误码字段传数值,应按事件定义解释。
API调用说明
API的调用可使用“[YMVoiceService getInstance]”来直接操作,接口使用的基本流程为初始化->收到初始化成功回调通知->加入语音频道->收到加入频道成功回调通知->使用其它接口->离开语音频道->反初始化,要确保严格按照上述的顺序使用接口。
实现回调
实现 VoiceEngineCallback 协议,并将对象作为 initSDK:appkey:appSecret:regionId:serverRegionName: 的 delegate 传入。SDK 回调不在 UI 主线程,操作界面时使用 dispatch_async(dispatch_get_main_queue(), ^{ ... });。
- (void)onRequestRestAPI:(int)requestID iErrorCode:(YouMeErrorCode_t)error query:(NSString*)query result:(NSString*)result {
// 协议要求的兼容空实现,本手册不接入 REST。
}
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param {
// 按所用功能处理回调。
}
- (void)onDetectNetWorkComplete:(bool)bNetworkOK detectResult:(NSString*)result {
// 按所用功能处理回调。
}
- (void)onAVStatisticNew: (int)avType userID:(NSString*) strUserID value:(int) iValue param:(NSString*) strParam {
// 按所用功能处理回调。
}
- (void)onMemberChange:(NSString*) channelID changeList:(NSArray<MemberChangeOC*>*) changeList isUpdate:(bool)isUpdate {
// 按所用功能处理回调。
}
- (void)onBroadcast:(YouMeBroadcast_t)bc strChannelID:(NSString*)channelID strParam1:(NSString*)param1 strParam2:(NSString*)param2 strContent:(NSString*)content {
// 按所用功能处理回调。
}
- (void)onPcmDataRemote: (int)channelNum samplingRateHz:(int)samplingRateHz bytesPerSample:(int)bytesPerSample data:(void*) data dataSizeInByte:(int)dataSizeInByte {
// 按所用功能处理回调。
}
- (void)onPcmDataRecord: (int)channelNum samplingRateHz:(int)samplingRateHz bytesPerSample:(int)bytesPerSample data:(void*) data dataSizeInByte:(int)dataSizeInByte {
// 按所用功能处理回调。
}
- (void)onPcmDataMix: (int)channelNum samplingRateHz:(int)samplingRateHz bytesPerSample:(int)bytesPerSample data:(void*) data dataSizeInByte:(int)dataSizeInByte {
// 按所用功能处理回调。
}onYouMeEvent:errcode:roomid:param:接收初始化、进退房、设备及消息事件;音量事件会复用 errcode 携带数值。onMemberChange:changeList:isUpdate:的元素为MemberChangeOC,含 userID/isJoin;isUpdate 为 false 表示首次查询,true 表示增量变更。配合getChannelUserList:maxCount:notifyMemChange:使用。onDetectNetWorkComplete:detectResult:的 result 为 JSON,含 avgRtt(毫秒)、lossPer(0~1)。onAVStatisticNew:userID:value:param:按统计类型解释 value:音频码率/带宽为 Bps,音频丢包率为千分比,延迟为毫秒。onBroadcast:...接收抢麦/连麦广播;普通文本接收使用通用事件 YOUME_EVENT_MESSAGE_NOTIFY。- 三类 PCM 回调分别为远端、录音、混合数据,需通过
setPcmCallbackEnable:outputToSpeaker:nOutputSampleRate:nOutputChannel:配置启用标志。指针仅在回调期间有效,异步使用前复制数据;不要在 PCM 回调里执行耗时任务。
协议还声明兼容 REST 方法 onRequestRestAPI:iErrorCode:query:result:,未用该能力时保留空实现;本次不公开 REST 请求及接入说明。
设置音频数据回调
- 语法
- (YouMeErrorCode_t) setPcmCallbackEnable:(int)flag outputToSpeaker:(bool)bOutputToSpeaker nOutputSampleRate:(int)nOutputSampleRate nOutputChannel:(int)nOutputChannel;- 功能
设置是否开启音频pcm回调,以及开启哪种类型的pcm回调。 在初始化成功后调用,可在进房前或进房后配置。
- 参数说明
flag: 说明需要哪些类型的音频回调,共有三种类型的回调,分别是远端音频,录音音频,以及远端和录音数据的混合音频。flag格式形如PcmCallbackFlag_Remote| PcmCallbackFlag_Record|PcmCallbackFlag_Mix。
bOutputToSpeaker: 是否扬声器静音:true 不静音;false 静音。
nOutputSampleRate:回调输出采样率,单位 Hz,常用配置为 16000。
nOutputChannel: 音频回调数据的通道数:1 单通道;2 立体声。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
-
相关回调接口
TEXT //pcm回调接口位于VoiceEngineCallback //以下3个回调分别对应于3种类型的音频pcm回调 //开启后才会有 //远端数据回调 //channelNum:声道数 //samplingRateHz:采样率 //bytesPerSample:采样深度 //data:pcm数据buffer //dataSizeInByte:buffer的大小
- (void)onPcmDataRemote: (int)channelNum samplingRateHz:(int)samplingRateHz bytesPerSample:(int)bytesPerSample data:(void*) data dataSizeInByte:(int)dataSizeInByte; //录音数据回调
- (void)onPcmDataRecord: (int)channelNum samplingRateHz:(int)samplingRateHz bytesPerSample:(int)bytesPerSample data:(void*) data dataSizeInByte:(int)dataSizeInByte; //远端和录音的混合数据回调
- (void)onPcmDataMix: (int)channelNum samplingRateHz:(int)samplingRateHz bytesPerSample:(int)bytesPerSample data:(void*) data dataSizeInByte:(int)dataSizeInByte;
TEXT
- 异步回调
启用后通过本平台 PCM 回调接收远端、录音、混合数据,按 flag 区分。指针仅在回调期间有效,异步使用前复制;回调中避免耗时操作。
初始化
- 语法
- (YouMeErrorCode_t)initSDK:(id<VoiceEngineCallback>)delegate appkey:(NSString*)appKey appSecret:(NSString*)appSecret
regionId:(YOUME_RTC_SERVER_REGION_t)regionId
serverRegionName:(NSString*) serverRegionName;- 功能
初始化语音引擎,做APP验证和资源初始化(只有appkey,appsecret,serverRegionId 都一样时,才可以进行语音互通,改任意一个视为另外一个区服)。
- 参数说明
delegate:实现了回调函数的委托对象。
appKey:从游密后台申请到的 app key, 这个是你们应用程序的唯一标识。
appSecret:对应 appKey 的私钥, 这个需要妥善保存,不要暴露给其他人。
regionId:设置首选连接服务器的区域码,建议直接使用RTC_DEFAULT_SERVER。如果YOUME_RTC_SERVER_REGION定义的区域码不能满足要求,可以把这个参数设为 RTC_EXT_SERVER,然后通过后面的参数serverRegionName 设置一个自定的区域值(如中国用 "cn" 或者 “ch"表示),然后把这个自定义的区域值同步给游密,我们将通过后台配置映射到最佳区域的服务器。
serverRegionName:自定义的扩展的服务器区域名。不能为null,可为空字符串“”。只有前一个参数serverRegionId设为RTC_EXT_SERVER时,此参数才有效(否则都将当空字符串“”处理)。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_INIT_OK:初始化成功,此后才能加入频道。YOUME_EVENT_INIT_FAILED:初始化失败,常见原因包括网络或 AppKey/AppSecret 错误。
回调示例:
// 涉及到的主要回调事件有:
// YOUME_EVENT_INIT_OK - 表明初始化成功
// YOUME_EVENT_INIT_FAILED - 表明初始化失败,最常见的失败原因是网络错误或者 AppKey-AppSecret 错误
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;设置服务器区域
- 语法
- (void)setServerRegion:(YOUME_RTC_SERVER_REGION_t)serverRegionId regionName:(NSString*)regionName bAppend:(bool)bAppend;- 功能
设置首选连接区域。初始区域通常通过初始化接口参数指定;需要调整时,等待初始化成功后、加入频道前调用。初始化前单独调用区域设置接口不会生效。 所有参数及是否支持追加区域按本平台语法传入。
- 参数说明
serverRegionId:如果YOUME_RTC_SERVER_REGION定义的区域码不能满足要求,可以把这个参数设为 RTC_EXT_SERVER,然后通过后面的参数regionName 设置一个自定的区域值(如中国用 "cn" 或者 “ch"表示),然后把这个自定义的区域值同步给游密,我们将通过后台配置映射到最佳区域的服务器。
regionName:自定义的扩展的服务器区域名。不能为null,可为空字符串“”。只有前一个参数serverRegionId设为RTC_EXT_SERVER时,此参数才有效(否则都将当空字符串“”处理)。
bAppend:true表示添加,false表示替换。
- 返回值
无(void)。
- 异步回调
无。本接口不单独返回异步完成通知。
安全验证码设置V3版本,安全性更高
- 语法
- (void)setTokenV3:(NSString*)token time:(long)time;- 功能
设置身份验证的token,需要配合后台接口,若要使用请联系游密后台配置。
-
token计算方式 采用SHA1加密算法,token=sha1(apikey+appkey+roomid+userid+timestamp)。 token由于涉及安全问题,正式使用在服务端进行计算。
-
参数说明
token:身份验证用token,设置为NULL或者空字符串,清空token值,不进行身份验证。
time: 用户加入房间的时间,单位s,token鉴权中的一部分。
- 返回值
无(void)。
- 异步回调
无。本接口不单独返回异步完成通知。
语音频道管理
加入语音频道
- 语法
- (YouMeErrorCode_t) joinChannel:(NSString *)strUserID channelID:(NSString *)strChannelID userRole:(YouMeUserRole_t)userRole;
- (YouMeErrorCode_t) joinChannel:(NSString *)strUserID channelID:(NSString *)strChannelID userRole:(YouMeUserRole_t)userRole singleMode:(bool)singleMode checkRoomExist:(bool)checkRoomExist;- 功能
初始化成功后加入频道。
用户 ID 在应用内唯一,频道 ID 用于区分语音房间;角色决定讲话及播放战歌等权限。
三参数重载使用多频道模式且不检查房间是否存在;五参数形式可显式选择模式。
-
singleMode为 true:单频道,加入时自动退出原频道;false:多频道,可同时收听多个频道,通过speakToChannel指定讲话频道。 -
checkRoomExist为 true:仅加入已存在的房间;false:房间不存在时也允许加入。
- 参数说明
strUserID:用户 ID,在当前应用内唯一。
strChannelID:频道 ID,在当前应用内唯一。
userRole:用户角色,使用本平台角色类型/常量,不能传无效角色。
singleMode:true 为单频道,加入时退出其他频道;false 为多频道,可用指定讲话频道接口选择讲话目标。
checkRoomExist:true 只加入已存在的频道;false 允许加入尚未存在的频道。
- 返回值
返回成功仅表示请求受理,等待 YOUME_EVENT_JOIN_OK / YOUME_EVENT_JOIN_FAILED 后再继续。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_JOIN_OK:加入频道成功。YOUME_EVENT_JOIN_FAILED:加入频道失败,按 err 处理原因。
指定讲话频道
- 语法
- (YouMeErrorCode_t) speakToChannel:(NSString *)strChannelID;- 功能
多频道模式下,指定当前要讲话的频道。
- 参数说明
strChannelID:全局唯一的频道标识,全局指在当前应用程序的范围内。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_SPEAK_SUCCESS:成功切换到指定讲话频道。YOUME_EVENT_SPEAK_FAILED:切换失败,按 err 处理网络或服务端等原因。
回调示例:
// 涉及到的主要回调事件有:
// YOUME_EVENT_SPEAK_SUCCESS - 成功切入到指定语音频道
// YOUME_EVENT_SPEAK_FAILED - 切入指定语音频道失败,可能原因是网络或服务器有问题
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;退出指定的语音频道
- 语法
- (YouMeErrorCode_t)leaveChannel:(NSString *)strChannelID;- 功能
多频道模式下,退出指定的语音频道。
- 参数说明
strChannelID:全局唯一的频道标识,全局指在当前应用程序的范围内。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_LEAVED_ONE:已退出指定频道。
回调示例:
//涉及到的主要回调事件有:
//YOUME_EVENT_LEAVED_ONE - 成功退出指定语音频道
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;退出所有语音频道
- 语法
- (YouMeErrorCode_t)leaveChannelAll;- 功能
退出所有的语音频道(单频道模式下直接调用此函数离开频道即可)。
- 参数说明
无。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_LEAVED_ALL:已退出全部频道。
回调示例:
//涉及到的主要回调事件有:
//YOUME_EVENT_LEAVED_ALL - 成功退出所有语音频道
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;设置白名单用户
- 语法
- (YouMeErrorCode_t)setWhiteUserList:(NSString*)channelID whiteUserList:(NSString*)whiteUserList;- 功能
设置当前用户的语音消息接收白名单,其语音消息只会转发到白名单的用户,不设置该接口则默认转发至频道内所有人。
- 参数说明
strChannelID:要设置的频道(兼容多频道模式,单频道模式下传入当前频道即可)。
strWhiteUserList:白名单用户列表, 以|分隔,如:User1|User2|User3;表示语音消息只发送到User1,User2,User3. "all"表示转发至频道内所有人;设置为自己表示不转发至任何用户。
channelID:频道 ID,在当前应用内唯一。
whiteUserList:语音接收白名单;用户 ID 数组,空列表及全体接收约定见功能说明。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_SET_WHITE_USER_LIST_OK:白名单设置完成;存在异常用户时 err 可为 YOUME_ERROR_WHITE_SOMEUSER_ABNORMAL。YOUME_EVENT_SET_WHITE_USER_LIST_FAILED:设置失败。
回调示例:
// 涉及到的主要回调事件有:
//YOUME_EVENT_SET_WHITE_USER_LIST_OK - 成功在指定语音频道设置白名单,有异常用户会返回错误码YOUME_ERROR_WHITE_SOMEUSER_ABNORMAL
//YOUME_EVENT_SET_WHITE_USER_LIST_FAILED - 在指定语音频道设置白名单失败,可能原因是网络或服务器有问题
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;设置黑名单用户
- 语法
- (void) setListenOtherVoice: (NSString *)strUserID isOn:(bool) isOn;- 功能
设置指定用户的语音接收黑名单状态,控制本机是否接收该用户的语音。
- 参数说明
strUserID:要设置黑名单状态的用户 ID。
isOn:false 将指定用户加入语音接收黑名单,屏蔽该用户的语音;true 将其移出黑名单,恢复接收其语音。
- 返回值
无(void)。
- 异步回调
没有本次设置的独立完成事件。相关屏蔽状态通知使用 YOUME_EVENT_LISTEN_OTHER_ON / YOUME_EVENT_LISTEN_OTHER_OFF,按通用事件定义处理。
设置用户角色
- 语法
- (YouMeErrorCode_t)setUserRole:(YouMeUserRole_t) eUserRole;- 功能
仅支持单频道,进房成功后切换当前用户角色。
- 参数说明
eUserRole:用户角色,使用本平台角色类型/常量,不能传无效角色。
- 返回值
角色影响讲话与播放战歌权限;先检查同步返回值。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收 YOUME_EVENT_IDENTITY_MODIFY;错误字段携带角色值,应按本平台角色类型解释,不作为错误码。
获取用户角色
- 语法
- (YouMeUserRole_t) getUserRol;- 功能
当前 Objective-C 公开方法实际拼写为 getUserRol,保留此名称。
- 参数说明
无。
- 返回值
同步返回本平台用户角色枚举/角色值,不是错误码。仅支持单频道,应在进房成功后查询。
- 异步回调
无。本接口不单独返回异步完成通知。
设置频道收听黑名单
- 语法
- (YouMeErrorCode_t) blockChannels:(NSArray<NSString *>*)channelList;- 功能
多频道模式下设置不收听的频道;每次覆盖完整黑名单。
频道 ID 数组,空数组清空黑名单。
- 参数说明
channelList:完整的频道收听黑名单;传频道 ID 数组,空数组清空。
- 返回值
返回成功后处理 YOUME_EVENT_BLOCK_CHANNELS(80)事件。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_BLOCK_CHANNELS:频道黑名单设置结果;err=YOUME_SUCCESS 表示成功,其他值按错误码处理。
查询是否在某个语音频道内
- 语法
- (bool)isInChannel:(NSString*) sChannelID;- 功能
查询是否在某个语音频道内。
- 参数说明
sChannelID:要查询的频道ID。
- 返回值
true——在频道内,false——没有在频道内。
- 异步回调
无。本接口不单独返回异步完成通知。
查询是否在语音频道内
- 语法
- (bool)isInAnyChannel;- 功能
查询是否在语音频道内。
- 参数说明
无。
- 返回值
true——在频道内,false——没有在频道内。
- 异步回调
无。本接口不单独返回异步完成通知。
查询频道用户列表
- 语法
- (YouMeErrorCode_t) getChannelUserList:(NSString*) channelID maxCount:(int)maxCount notifyMemChange:(bool)notifyMemChange ;- 功能
查询频道当前的用户列表, 并设置是否获取频道用户进出的通知(OnMemberChange)。(必须自己在频道中)
- 参数说明
channelID:要查询的频道ID。
maxCount:想要获取的最大人数。-1表示获取全部列表。
notifyMemChange:其他用户进出房间时,是否要收到通知。(设置为true,自己所在频道有人进出 都会有对应回调产生,反之false就没有对应回调)
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示本次调用成功;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onMemberChange:changeList:isUpdate: 接收列表与变更,isUpdate=false 为首次查询,true 为增量。
// channelID:频道ID
// changeList:查询获得的用户列表,或变更列表。
- (void)onMemberChange:(NSString*)channelID changeList:(NSArray<MemberChangeOC*>*)changeList isUpdate:(bool)isUpdate {
}首次查询用户列表时,假设当前房间内用户数是curCount, 1、当传入的maxCount >= curCount时: OnMemberChange回调一次,返回房间内所有curCount个用户。 2、当传入的maxCount < curCount时,OnMemberChange回调两次: 第一次返回maxCount个用户; 第二次返回其余curCount-maxCount个用户。 3、当传入的maxCount = -1时,OnMemberChange回调两次: 第一次只返回一个用户(按照用户id排序的最小值); 第二次返回房间内剩余的curCount-1个用户。
把人踢出房间
- 语法
- (YouMeErrorCode_t) kickOtherFromChannel:(NSString*) userID channelID:(NSString*)channelID lastTime:(int) lastTime;- 功能
把人踢出房间。
- 参数说明
userID:被踢的用户ID。
channelID:从哪个房间踢出(自己需要在房间)。
lastTime:踢出后,多长时间内不允许再次进入(单位:秒)。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_KICK_RESULT:踢人方收到操作结果,param 为被踢者 ID。YOUME_EVENT_KICK_NOTIFY:被踢方收到通知并退出频道;param 携带踢人者 ID、原因及被禁时长。
回调示例:
//VoiceEngineCallback
//event:YOUME_EVENT_KICK_RESULT: 踢人方收到,发送消息的结果回调,param为被踢者ID
//event:YOUME_EVENT_KICK_NOTIFY: 被踢方收到,被踢通知,会自动退出所在频道。param: (踢人者ID,被踢原因,被禁时间)
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;范围语音
加入范围语音频道
- 语法
-(YouMeErrorCode_t)joinRangeAudioChannel:(NSString *)strUserID channelID : (NSString *)strChannelID userRole : (YouMeUserRole_t)userRole singleMode:(bool)singleMode checkRoomExist:(bool)checkRoomExist length : (float)length width : (float)width height : (float)height radius : (float)radius;- 功能
“范围语音”让玩家只收听周围一定范围内的成员声音。初始化成功后加入范围语音频道,尺寸、坐标和半径使用一致的游戏坐标单位。已有频道忽略本次地图尺寸设置。
- 参数说明
strUserID:用户 ID,在当前应用内唯一。
strChannelID:频道 ID,在当前应用内唯一。
userRole:用户角色,使用本平台角色类型/常量,不能传无效角色。
singleMode:true 为单频道,加入时退出其他频道;false 为多频道,可用指定讲话频道接口选择讲话目标。
checkRoomExist:true 只加入已存在的频道;false 允许加入尚未存在的频道。
length:地图 x 轴尺寸,正数,与位置坐标使用相同单位;已有频道忽略本次尺寸设置。
width:地图 y 轴尺寸,正数,与位置坐标使用相同单位;已有频道忽略本次尺寸设置。
height:地图 z 轴尺寸,正数,与位置坐标使用相同单位;已有频道忽略本次尺寸设置。
radius:收听半径,必须大于 0;按切比雪夫距离计算。
原生 C++ 的参考默认尺寸为 5000、半径为 50;本平台封装没有这些可选默认参数,必须按上述语法显式传入。
- 返回值
返回成功后等待进房成功/失败事件。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_JOIN_OK:加入范围语音频道成功,此后可更新位置。YOUME_EVENT_JOIN_FAILED:加入失败。
更新位置和收听半径
- 语法
-(YouMeErrorCode_t)updateRangeAudioPosition:(NSString *)strChannelID x : (float)x y : (float)y z : (float)z radius : (float)radius;- 功能
更新当前范围频道内的位置 x/y/z 及收听半径 radius;坐标单位与加入时地图一致,radius 必须大于 0。
按切比雪夫距离判断范围,即三个坐标轴距离的最大值。
收听距离使用切比雪夫距离 d=max(|x1-x2|,|y1-y2|,|z1-z2|),不是欧氏距离;radius 必须大于 0,不能传 0 作为默认值。
- 参数说明
strChannelID:频道 ID,在当前应用内唯一。
x:当前位置 x 坐标。
y:当前位置 y 坐标。
z:当前位置 z 坐标。
radius:收听半径,必须大于 0;按切比雪夫距离计算。
- 返回值
仅用于范围频道,在普通频道调用返回范围房间类型错误;先检查同步返回错误码。
- 异步回调
无。本接口不单独返回异步完成通知。
设备状态管理
切换语音输出设备
- 语法
- (YouMeErrorCode_t)setOutputToSpeaker:(bool)bOutputToSpeaker;- 功能
默认输出到扬声器,在加入房间成功后设置。(iOS受系统限制,如果已释放麦克风则无法切换到听筒;Android需要在app的AndroidManifest文件中添加android.permission.MODIFY_AUDIO_SETTINGS权限)
- 参数说明
bOutputToSpeaker :true——输出到扬声器,false——输出到听筒。
- 返回值
如果成功返回YOUME_SUCCESS,否则返回错误码,具体请参考YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_SWITCH_OUTPUT:语音输出设备切换结果,按 err 判断。
设置扬声器状态
- 语法
- (void)setSpeakerMute:(bool)mute;- 功能
设置本机扬声器静音状态,加入频道成功后配置;设备状态异步生效。
- 参数说明
mute:true——关闭扬声器,false——开启扬声器。
- 返回值
无(void)。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_LOCAL_SPEAKER_ON:本机扬声器开启状态通知,按 err 判断结果。YOUME_EVENT_LOCAL_SPEAKER_OFF:本机扬声器关闭状态通知,按 err 判断结果。
获取扬声器状态
- 语法
- (bool)getSpeakerMute;- 功能
同步读取 SDK 当前设备静音状态配置。设备开关异步生效,设置后立即查询不代表硬件已完成切换。
- 参数说明
无。
- 返回值
true 表示设备静音/关闭,false 表示开启。读取 SDK 当前状态,不保证硬件已完成切换。
- 异步回调
无。本接口不单独返回异步完成通知。
设置麦克风状态
- 语法
- (void)setMicrophoneMute:(bool)mute;- 功能
设置本机麦克风静音状态,加入频道成功后配置;设备状态异步生效。
- 参数说明
mute:true——关闭麦克风,false——开启麦克风。
- 返回值
无(void)。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_LOCAL_MIC_ON:本机麦克风开启状态通知,按 err 判断结果。YOUME_EVENT_LOCAL_MIC_OFF:本机麦克风关闭状态通知,按 err 判断结果。
获取麦克风状态
- 语法
- (bool)getMicrophoneMute;- 功能
同步读取 SDK 当前设备静音状态配置。设备开关异步生效,设置后立即查询不代表硬件已完成切换。
- 参数说明
无。
- 返回值
true 表示设备静音/关闭,false 表示开启。读取 SDK 当前状态,不保证硬件已完成切换。
- 异步回调
无。本接口不单独返回异步完成通知。
设置是否通知别人麦克风和扬声器的开关
- 语法
- (void)setAutoSendStatus:(bool)bAutoSend;- 功能
设置是否通知别人,自己麦克风和扬声器的开关状态。(建议进入频道后调用,设置后其他当前在同一个频道的用户可以获取该用户的麦克风和扬声器的开关状态。 对应回调事件 YouMeEvent.YOUME_EVENT_OTHERS_MIC_ON, YouMeEvent.YOUME_EVENT_OTHERS_MIC_OFF, YouMeEvent.YOUME_EVENT_OTHERS_SPEAKER_ON, YouMeEvent.YOUME_EVENT_OTHERS_SPEAKER_OFF, 事件对应具体详细请参考状态码。)
- 参数说明
bAutoSend:true 通知同频道用户本机设备开关状态,false 不通知。
- 返回值
无(void)。
- 异步回调
设置本身没有独立完成事件;开启后同频道其他用户可接收 YOUME_EVENT_OTHERS_MIC_ON/OFF、YOUME_EVENT_OTHERS_SPEAKER_ON/OFF 状态通知。
设置扬声器音量增益
- 语法
- (void)setVolume:(unsigned int)uiVolume;- 功能
设置扬声器音量增益,实际扬声器音量 = 扬声器音量增益 x 系统音量;百分比 100 对应乘法系数 1。
- 参数说明
uiVolume:扬声器音量增益,0~100(百分比),100 对应乘法系数 1;实际扬声器音量 = 扬声器音量增益 x 系统音量。
- 返回值
无(void)。
- 异步回调
无。本接口不单独返回异步完成通知。
获取扬声器音量增益
- 语法
- (unsigned int)getVolume;- 功能
获取 SDK 当前扬声器音量增益。实际扬声器音量 = 扬声器音量增益 x 系统音量;100% 增益对应乘法系数 1。
- 参数说明
无。
- 返回值
返回 SDK 当前扬声器音量增益,范围 0~100(百分比),不是实际扬声器音量。
- 异步回调
无。本接口不单独返回异步完成通知。
设置房间内某成员音量
- 语法
- (YouMeErrorCode_t)setUserVolume:(NSString*) userID uiVolume:(unsigned int)uiVolume;- 功能
设置房间内某成员的说话音量大小,仅在本端生效;本端退出频道时失效,被调节成员进出频道可保持有效。
- 参数说明
userID:用户 ID,在当前应用内唯一。
uiVolume:成员音量,0~300,100 为正常值,0 为无声;只影响本端收听。
- 返回值
userID 为目标成员 ID,音量范围 0~300,100 为正常值;返回平台错误码。
- 异步回调
无。本接口不单独返回异步完成通知。
设置麦克风音量增益
- 语法
- (void)setMicVolume:(unsigned int)uiVolume;- 功能
设置麦克风音量增益,0 为无声,100 为正常值,大于 100 为增益、小于 100 为减益;过度放大可能失真。
- 参数说明
uiVolume:麦克风音量增益,0~1000,100 为正常值,0 为无声;过度放大可能失真。
- 返回值
无(void)。
- 异步回调
无。本接口不单独返回异步完成通知。
获取麦克风音量增益
- 语法
- (unsigned int)getMicVolume;- 功能
获取麦克风音量增益配置,不是实时讲话音量;实时讲话音量通过相应的音量回调获取。
- 参数说明
无。
- 返回值
返回当前麦克风音量增益,范围 0~1000,100 为正常值,不是实时说话音量。
- 异步回调
无。本接口不单独返回异步完成通知。
控制他人麦克风
- 语法
- (void) setOtherMicMute:(NSString *)strUserID mute:(bool) mute;- 功能
控制他人的麦克风状态(也就是关闭或者开启他人的麦克风)。
- 参数说明
strUserID:要控制的用户ID。
mute:是否静音。true:静音别人的麦克风,false:开启别人的麦克风。
- 返回值
无(void)。
- 异步回调
没有调用方的独立完成事件;被控制端通过通用事件 YOUME_EVENT_MIC_CTR_ON / YOUME_EVENT_MIC_CTR_OFF 接收麦克风控制通知。
控制他人扬声器
- 语法
- (void) setOtherSpeakerMute: (NSString *)strUserID mute:(bool) mute;- 功能
控制他人的扬声器状态(也就是关闭或者开启他人的扬声器)。
- 参数说明
strUserID:要控制的用户ID。
mute:是否静音。true:静音别人的扬声器,false:开启别人的扬声器。
- 返回值
无(void)。
- 异步回调
没有调用方的独立完成事件;被控制端通过通用事件 YOUME_EVENT_SPEAKER_CTR_ON / YOUME_EVENT_SPEAKER_CTR_OFF 接收扬声器控制通知。
设置当麦克风静音时,是否释放麦克风设备
- 语法
- (YouMeErrorCode_t) setReleaseMicWhenMute:(bool) enabled;- 功能
设置当麦克风静音时,是否释放麦克风设备(需要在初始化成功后,加入房间之前调用)。
- 参数说明
enabled: true--当麦克风静音时,释放麦克风设备,此时允许第三方模块使用麦克风设备录音。在Android和iOS上,语音由通话音轨切换到媒体音轨,回归到双声道高音质输出体验(如果媒体音量和通话音量不同时切换会产生音量变大变小的感觉);false--不管麦克风是否静音,麦克风设备都会被占用。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示本次调用成功;其他值表示失败,参见 错误码定义。
- 异步回调
无。本接口不单独返回异步完成通知。
设置插入耳机时,是否自动退出系统通话模式
- 语法
- (YouMeErrorCode_t) setExitCommModeWhenHeadsetPlugin:(bool) enabled;- 功能
设置插入耳机时,是否自动退出系统通话模式(禁用手机系统硬件信号前处理)。 系统提供的前处理效果包括回声消除、自动增益等,有助于抑制战歌等回声噪音,减少系统资源消耗,对Windows系统无效。 默认为false,在初始化之后、加入房间之前调用。
- 参数说明
enabled: true--当插入耳机时,自动禁用系统硬件信号前处理,拔出时还原;false--插拔耳机不做处理。
- 返回值
成功返回YOUME_SUCCESS,其它返回值请参考YouMeErrorCode类型定义。
- 异步回调
无。本接口不单独返回异步完成通知。
说话及音量检测
设置语音检测
- 语法
- (YouMeErrorCode_t)setVadCallbackEnabled:(bool)enabled;- 功能
设置是否开启语音检测回调,开启后频道内有人正在讲话与结束讲话都会发起相应回调通知。(需要游密后台配置开启,该状态值在加入房间成功后设置才有效,并且需要频道内所有用户都设置才生效。)
- 参数说明
enabled:true——打开,false——关闭。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_OTHERS_VOICE_ON:其他用户进入讲话状态。YOUME_EVENT_OTHERS_VOICE_OFF:其他用户进入静默状态。
回调示例:
// 主要回调事件:
// YOUME_EVENT_OTHERS_VOICE_ON - 其他用户进入讲话状态
// YOUME_EVENT_OTHERS_VOICE_OFF - 其他用户进入静默状态
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;设置本地讲话音量级别回调
- 语法
- (YouMeErrorCode_t) setMicLevelCallback:(int) maxLevel;- 功能
设置是否开启讲话音量级别回调, 并设置相应的参数。
- 参数说明
maxLevel:音量最大时对应的级别,需大于1,最大可设100。根据实际需要设置小于100的值可以减少回调的次数(注意设置较高的值可能会产生大量回调,特别在Unity上会影响其它事件到达,一般建议不超过30)。比如你只在UI上呈现10级的音量变化,那就设10就可以了。设 0 表示关闭回调。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_MY_MIC_LEVEL:本机讲话音量级别;读取错误字段的整数业务数值 读取音量值,不按错误码判断。
设置远端讲话音量级别回调
- 语法
- (YouMeErrorCode_t) setFarendVoiceLevelCallback:(int) maxLevel maxMixedLevel:(int)maxMixedLevel;- 功能
设置是否开启远端音量级别回调, 并设置相应的参数。
- 参数说明
maxLevel:音量最大时对应的级别,需大于1,最大可设100。根据实际需要设置小于100的值可以减少回调的次数(注意设置较高的值可能会产生大量回调,特别在Unity上会影响其它事件到达,一般建议不超过30)。比如你只在UI上呈现10级的音量变化,那就设10就可以了。设 0 表示关闭回调。
maxMixedLevel:所有用户音量混合后的最大时对应的级别,需大于1,最大可设100。根据实际需要设置小于100的值可以减少回调的次数(注意设置较高的值可能会产生大量回调,特别在Unity上会影响其它事件到达,一般建议不超过30)。比如你只在UI上呈现10级的音量变化,那就设10就可以了。设 0 表示关闭回调。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收 YOUME_EVENT_FAREND_VOICE_LEVEL。错误字段携带音量级别;单个用户通知的 param 为用户 ID,混合音量通知的 param 为空。
回调示例:
//eventType:YOUME_EVENT_FAREND_VOICE_LEVEL - 远端音量回调,iErrorCode为音量值,param为说话人,如果param为空,表示所有远端语音的整体音量;roomid参数为空
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;通话管理
暂停通话
- 语法
- (YouMeErrorCode_t)pauseChannel;- 功能
暂停通话,释放对麦克风等设备资源的占用。当需要用第三方模块临时录音时,可调用这个接口。
- 参数说明
无。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_PAUSED:暂停语音频道完成。
回调示例:
// 主要回调事件:
// YOUME_EVENT_PAUSED - 暂停语音频道完成
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;恢复通话
- 语法
- (YouMeErrorCode_t)resumeChannel;- 功能
恢复通话,调用PauseChannel暂停通话后,可调用这个接口恢复通话。(恢复通话后的麦克风的状态是和重新恢复通话时的角色相关,不一定与PauseChannel暂停通话时的麦克风状态一致)
- 参数说明
无。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_RESUMED:恢复语音频道完成。
回调示例:
// 主要回调事件:
// YOUME_EVENT_RESUMED - 恢复语音频道完成
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;抢麦连麦
抢麦相关设置
- 语法
- (YouMeErrorCode_t) setGrabMicOption:(NSString*) channelID mode:(int)mode maxAllowCount:(int)maxAllowCount maxTalkTime:(int)maxTalkTime voteTime:(unsigned int)voteTime;-
功能
-
功能描述 抢麦相关设置(抢麦活动发起前调用此接口进行设置)。
channelID:抢麦活动的频道id。
mode:抢麦模式(1:先到先得模式;2:按权重分配模式)。
先到先得模式中,抢麦活动会持续,用户可以继续抢其他用户释放的麦。
maxAllowCount:允许能抢到麦的最大人数(要大于0)。
maxTalkTime:允许抢到麦后使用麦的最大时间(单位:秒,要大于0)。
voteTime:抢麦仲裁时间(单位:秒,要大于0),过了X秒后服务器将进行仲裁谁最终获得麦(仅在按权重分配模式下有效)。
- 参数说明
channelID:抢麦活动的频道id。
mode:抢麦模式(1:先到先得模式;2:按权重分配模式)。先到先得模式中,抢麦活动会持续,用户可以继续抢其他用户释放的麦。
maxAllowCount:允许能抢到麦的最大人数(要大于0)。
maxTalkTime:允许抢到麦后使用麦的最大时间(单位:秒,要大于0)。
voteTime:抢麦仲裁时间(单位:秒,要大于0),过了X秒后服务器将进行仲裁谁最终获得麦(仅在按权重分配模式下有效)。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
无。本接口不单独返回异步完成通知。
发起抢麦活动
- 语法
- (YouMeErrorCode_t) startGrabMicAction:(NSString*) channelID strContent:(NSString*) pContent;-
功能
-
功能描述 发起抢麦活动。
接口需要加入房间后再调用。
channelID:抢麦活动的频道id。
pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。
- 参数说明
channelID:抢麦活动的频道id。
pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_GRABMIC_START_OK:发起抢麦活动成功。YOUME_EVENT_GRABMIC_START_FAILED:发起失败。YOUME_EVENT_GRABMIC_NOTIFY_START:频道内的抢麦活动开始通知。
停止抢麦活动
- 语法
- (YouMeErrorCode_t) stopGrabMicAction:(NSString*) channelID strContent:(NSString*) pContent;-
功能
-
功能描述 停止抢麦活动。
先到先得模式下,抢麦成功后,调用停止抢麦不会把当前抢麦人踢下麦。
channelID:抢麦活动的频道id。
pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。
- 参数说明
channelID:抢麦活动的频道id。
pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_GRABMIC_STOP_OK:停止抢麦活动成功。YOUME_EVENT_GRABMIC_STOP_FAILED:停止失败。YOUME_EVENT_GRABMIC_NOTIFY_STOP:频道内的抢麦活动结束通知。
发起抢麦请求
- 语法
- (YouMeErrorCode_t) requestGrabMic:(NSString*) channelID score:(int)score isAutoOpenMic:(bool)isAutoOpenMic strContent:(NSString*) pContent;-
功能
-
功能描述 发起抢麦请求。
channelID:抢麦的频道id。
score:积分(权重分配模式下有效,游戏根据自己实际情况设置)。
isAutoOpenMic:抢麦成功后是否自动开启麦克风权限。
pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。
- 参数说明
channelID:抢麦的频道id。
score:积分(权重分配模式下有效,游戏根据自己实际情况设置)。
isAutoOpenMic:抢麦成功后是否自动开启麦克风权限。
pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_GRABMIC_REQUEST_OK:抢麦成功,可以讲话。YOUME_EVENT_GRABMIC_REQUEST_FAILED:抢麦失败。YOUME_EVENT_GRABMIC_REQUEST_WAIT:进入等待队列,仅权重模式产生。YOUME_EVENT_GRABMIC_ENDMIC:因使用时长到期或其他原因不再占用麦。
释放抢到的麦
- 语法
- (YouMeErrorCode_t) releaseGrabMic:(NSString*) channelID;-
功能
-
功能描述 释放抢到的麦。
channelID:抢麦的频道id。
- 参数说明
channelID:抢麦的频道id。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_GRABMIC_RELEASE_OK:释放麦成功。YOUME_EVENT_GRABMIC_RELEASE_FAILED:释放麦失败。
连麦相关设置
- 语法
- (YouMeErrorCode_t) setInviteMicOption:(NSString*) channelID waitTimeout:(int)waitTimeout maxTalkTime:(int)maxTalkTime;-
功能
-
功能描述 连麦相关设置(角色是频道的管理者或者主播时调用此接口进行频道内的连麦设置)。
channelID:连麦的频道id。
waitTimeout:等待对方响应超时时间(秒)。
maxTalkTime:最大通话时间(秒)。
- 参数说明
channelID:连麦的频道id。
waitTimeout:等待对方响应超时时间(秒)。
maxTalkTime:最大通话时间(秒)。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_INVITEMIC_SETOPT_OK:连麦设置成功。YOUME_EVENT_INVITEMIC_SETOPT_FAILED:连麦设置失败。
发起连麦请求
- 语法
- (YouMeErrorCode_t) requestInviteMic:(NSString*) channelID strUserID:(NSString*)pUserID strContent:(NSString*) pContent;-
功能
-
功能描述 发起与某人的连麦请求(主动呼叫)。
支持跨频道发起连麦。
channelID:连麦的频道id。
pUserID:被叫方的用户id。
pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。
- 参数说明
channelID:连麦的频道id。
pUserID:被叫方的用户id。
pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_INVITEMIC_REQUEST_OK:请求已发出,仍需等待对方回应。YOUME_EVENT_INVITEMIC_REQUEST_FAILED:请求失败。YOUME_EVENT_INVITEMIC_NOTIFY_ANSWER:对方回应同意、拒绝或超时。YOUME_EVENT_INVITEMIC_CAN_TALK:双方可以通话。
回应连麦请求
- 语法
- (YouMeErrorCode_t) responseInviteMic:(NSString*) pUserID isAccept:(bool)isAccept strContent:(NSString*) pContent;-
功能
-
功能描述 对连麦请求做出回应(被动应答)。
pUserID:主叫方的用户id。
isAccept:是否同意连麦。
pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。
- 参数说明
pUserID:主叫方的用户id。
isAccept:是否同意连麦。
pContent:游戏传入的上下文内容,通知回调会传回此内容(目前只支持纯文本格式)。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_INVITEMIC_RESPONSE_OK:回应请求处理成功;err=YOUME_ERROR_INVITEMIC_REJECT 表示拒绝。YOUME_EVENT_INVITEMIC_RESPONSE_FAILED:回应请求处理失败。YOUME_EVENT_INVITEMIC_CAN_TALK:对方被接受后,双方可以通话。
停止连麦
- 语法
- (YouMeErrorCode_t) stopInviteMic;-
功能
-
功能描述 停止连麦。
-
参数说明
无。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_INVITEMIC_STOP_OK:停止连麦成功。YOUME_EVENT_INVITEMIC_STOP_FAILED:停止连麦失败。YOUME_EVENT_INVITEMIC_CANNOT_TALK:双方已不能继续连麦通话。YOUME_EVENT_INVITEMIC_NOTIFY_CANCEL:对方结束连麦或连麦时长到期的通知。
战歌管理
播放战歌播放战歌
- 语法
- (YouMeErrorCode_t)playBackgroundMusic:(NSString *)path repeat:(bool)repeat;- 功能
播放指定的音乐文件。播放的音乐将会通过扬声器输出,并和语音混合后发送给接收方。这个功能必须进入频道传入身份为主播/指挥才能使用。建议使用mp3格式的文件,目前wav、flac格式的文件不支持。
- 参数说明
path:音乐文件的路径。
repeat:是否重复播放,true——重复播放,false——只播放一次就停止播放。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示本次调用成功;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_BGM_STOPPED:战歌播放结束。YOUME_EVENT_BGM_FAILED:战歌播放失败。
回调示例:
// 主要回调事件:
// YOUME_EVENT_BGM_STOPPED - 通知战歌播放结束
// YOUME_EVENT_BGM_FAILED - 通知战歌播放失败
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;停止播放战歌
- 语法
- (YouMeErrorCode_t)stopBackgroundMusic;- 功能
停止播放当前正在播放的战歌。 这是一个同步调用接口,函数返回时,音乐播放也就停止了。
- 参数说明
无。
- 返回值
如果成功返回YOUME_SUCCESS,表明成功停止了音乐播放流程;否则返回错误码,具体请参考YouMeErrorCode类型定义。
- 异步回调
无。本接口不单独返回异步完成通知。
设置战歌播放音量
- 语法
- (YouMeErrorCode_t)setBackgroundMusicVolume:(unsigned int)bgVolume;- 功能
设定战歌的音量。这个接口用于调整战歌和语音之间的相对音量,使得战歌和语音混合听起来协调。 这是一个同步调用接口。
- 参数说明
bgVolume:战歌的音量,范围 [0-100]。
- 返回值
如果成功(表明成功设置了战歌的音量)返回YOUME_SUCCESS,否则返回错误码,具体请参考YouMeErrorCode类型定义。
- 异步回调
无。本接口不单独返回异步完成通知。
设置战歌播放进度
- 语法
- (void)setBgmProgress:(long long)bgmProgress;- 功能
设置当前战歌播放进度。
- 参数说明
bgmProgress:当前播放进度,范围(0-音频时长],单位ms。
- 返回值
无(void)。
- 异步回调
无。本接口不单独返回异步完成通知。
获取战歌播放进度
- 语法
- (long long)getBgmProgress;- 功能
获取战歌播放进度。
- 参数说明
无。
- 返回值
同步返回战歌当前播放进度,单位毫秒。
- 异步回调
无。本接口不单独返回异步完成通知。
获取战歌总时长
- 语法
- (long long) getBgmDuration;- 功能
获取战歌总时长,单位ms。
- 参数说明
无。
- 返回值
同步返回战歌总时长,单位毫秒。
- 异步回调
无。本接口不单独返回异步完成通知。
语音举报
语音举报功能需要联系游密开通。流程:初始化成功 → 加入频道成功 → 各端调用 setReportInfo 配置本机最近语音缓存 → 用户 A 调用 reportUserAudio 举报用户 B → 用户 B 收到信令后上传本地最近 nTimeSec 秒语音(不超过 60 秒)。
配置举报音频缓存
- 语法
-(YouMeErrorCode_t)setReportInfo:(int)nTimeSec language : (NSString *)language;- 功能
初始化成功后配置本机缓存时长及语言,进房后按业务设置。
nTimeSec 单位秒,范围 0~60,超出范围按 60 秒处理;language 为 ISO 639 语言代码。
用于被举报时上报,此接口不直接发起举报。
- 参数说明
nTimeSec:最近音频缓存时长(秒),范围 0~60,超出范围按 60 秒处理。
language:ISO 639 语言代码。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示本次调用成功;其他值表示失败,参见 错误码定义。
- 异步回调
无。本接口不单独返回异步完成通知。
举报房间内用户
- 语法
-(YouMeErrorCode_t)reportUserAudio:(NSString *)reportUserID roomID:(NSString *)roomID customData : (NSString *)customData;- 功能
reportUserID 为非空的被举报用户 ID,roomID 为其所在房间;单频道传空表示本房间,多频道传空表示第一次加入的房间。
customData 为透传业务字符串。
按事件错误码和参数处理结果。
- 参数说明
reportUserID:非空的被举报用户 ID。
roomID:频道 ID,在当前应用内唯一。
customData:透传的业务自定义字符串。
- 返回值
返回成功仅表示受理;举报者处理 YOUME_EVENT_SEND_REPORT_REQ_ACK,被举报端处理 YOUME_EVENT_REPORT_AUDIO_SERVER_NOTIFY,禁言通知为 YOUME_EVENT_REPORT_AUDIO_MASK_NOTIFY。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_SEND_REPORT_REQ_ACK:举报者收到的发送举报请求响应。YOUME_EVENT_REPORT_AUDIO_SERVER_NOTIFY:被举报端收到的音频上报服务器结果。YOUME_EVENT_REPORT_AUDIO_MASK_NOTIFY:被禁言通知。
监听(耳返)
用于在本机耳机中监听自己的麦克风声音或战歌,并调节麦克风监听音量。监听音量设置作用于本机监听效果。
设置监听
- 语法
- (YouMeErrorCode_t)setHeadsetMonitorMicOn:(bool)micEnabled BgmOn:(bool)bgmEnabled;- 功能
设置是否用耳机监听本机的麦克风声音或战歌。这是一个同步调用接口,进入频道时使用主播/指挥身份才能使用。
- 参数说明
micEnabled:是否监听麦克风 true 监听,false 不监听。
bgmEnabled:是否监听战歌 true 监听,false 不监听。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
无。本接口不单独返回异步完成通知。
设置监听麦克风音量
- 语法
- (YouMeErrorCode_t)setMicbypassVolume:(unsigned int) vol;- 功能
设置本机耳机中的麦克风监听音量,仅影响本机监听效果;发送给房间成员的麦克风音量增益需单独设置。
- 参数说明
vol:麦克风监听音量,范围 0~100,与扬声器音量增益分别设置。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
无。本接口不单独返回异步完成通知。
获取监听麦克风音量
- 语法
- (int)getMicbypassVolume;- 功能
获取本机耳机中的麦克风监听音量。
- 参数说明
无。
- 返回值
返回麦克风监听音量,范围 0~100。
- 异步回调
无。本接口不单独返回异步完成通知。
混响音效
设置混响音效
- 语法
- (YouMeErrorCode_t)setReverbEnabled:(bool)enabled;- 功能
设置是否开启混响音效,主要供主播/指挥使用。
- 参数说明
enabled:true 打开,false 关闭。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
无。本接口不单独返回异步完成通知。
设置混响音效类型
- 语法
- (YouMeErrorCode_t)setAudioEffectType:(unsigned int)effectType;- 功能
- 参数说明
effectType:混响音效类型;具体数值见本平台状态码页的混响音效类型定义。
- 返回值
设置混响音效类型,参数传整数类型值,返回平台错误码。
- 异步回调
无。本接口不单独返回异步完成通知。
变声音调
获取变声音调
- 语法
- (float) getSoundtouchPitchSemiTones;- 功能
获取变声音调(增值服务,需要后台配置开启)。
- 参数说明
无。
- 返回值
返回当前变声音调值,范围 -12~+12。
- 异步回调
无。本接口不单独返回异步完成通知。
设置变声音调
- 语法
- (int) setSoundtouchPitchSemiTones:(float) fPitchSemiTones;- 功能
设置变声音调(增值服务,需要后台配置开启),需在进入房间成功后调用,仅对当前房间有效,退出房间时重置为0。
- 参数说明
fPitchSemiTones:变声音调的值,范围[-12 ~ +12]。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
无。本接口不单独返回异步完成通知。
广播消息
- 语法
- (YouMeErrorCode_t) sendMessage:(NSString*) channelID strContent:(NSString*) strContent requestID:(int*) requestID;- 功能
在语音频道内,广播一个文本消息。
- 参数说明
pChannelID:频道ID(自己需要进入这个频道)。
pContent:要广播的文本内容。
requestID:用于标识消息的ID。
channelID:频道 ID,在当前应用内唯一。
strContent:业务文本内容;连麦/抢麦上下文按事件透传。
- 返回值
返回 YouMeErrorCode_t,YOUME_SUCCESS 表示请求已受理;其他值表示失败,参见 错误码定义。
- 异步回调
通过 onYouMeEvent:errcode:roomid:param: 接收:
YOUME_EVENT_SEND_MESSAGE_RESULT:发送结果,param 为回传 requestID。YOUME_EVENT_MESSAGE_NOTIFY:频道内其他用户收到文本消息,param 为 content 内容。
回调示例:
发送方会收到YOUME_EVENT_SEND_MESSAGE_RESULT回调,通知发送消息的结果。 频道内其他人收到YOUME_EVENT_MESSAGE_NOTIFY回调,通知消息内容。
//VoiceEngineCallback
//event:YOUME_EVENT_SEND_MESSAGE_RESULT: 发送消息的结果回调,param为requestID的字符串
//event:YOUME_EVENT_MESSAGE_NOTIFY:频道内其他人收到消息的通知。param为文本内容
- (void)onYouMeEvent:(YouMeEvent_t)eventType errcode:(YouMeErrorCode_t)iErrorCode roomid:(NSString *)roomid param:(NSString *)param;设置时间戳
设置录音时间戳
- 语法
- (void) setRecordingTimeMs:(unsigned int)timeMs;- 功能
设置当前录音的时间戳。当通过录游戏脚本进行直播时,要保证观众端音画同步,在主播端需要进行时间对齐。 这个接口设置的就是当前游戏画面录制已经进行到哪个时间点了。
- 参数说明
timeMs:当前游戏画面对应的时间点,单位为毫秒。
- 返回值
无(void)。
- 异步回调
无。本接口不单独返回异步完成通知。
设置播放时间戳
- 语法
- (void) setPlayingTimeMs:(unsigned int)timeMs;- 功能
设置当前声音播放的时间戳。当通过录游戏脚本进行直播时,要保证观众端音画同步,游戏画面的播放需要和声音播放进行时间对齐。 这个接口设置的就是当前游戏画面播放已经进行到哪个时间点了。
- 参数说明
timeMs:当前游戏画面播放对应的时间点,单位为毫秒。
- 返回值
无(void)。
- 异步回调
无。本接口不单独返回异步完成通知。
移动网络设置
设置是否允许使用移动网络
- 语法
- (void)setUseMobileNetworkEnabled:(bool)bEnabled;- 功能
设置是否允许使用移动网络。在WIFI和移动网络都可用的情况下会优先使用WIFI,在没有WIFI的情况下,如果设置允许使用移动网络,那么会使用移动网络进行语音通信,否则通信会失败。该接口需要在初始化后,加入房间前设置。
- 参数说明
bEnabled:true——允许使用移动网络,false——禁止使用移动网络。
- 返回值
无(void)。
- 异步回调
无。本接口不单独返回异步完成通知。
获取是否允许使用移动网络
- 语法
- (bool) getUseMobileNetworkEnabled;- 功能
获取是否允许SDK在没有WIFI的情况使用移动网络进行语音通信。
- 参数说明
无。
- 返回值
true——允许使用移动网络,false——禁止使用移动网络,默认情况下允许使用移动网络。
- 异步回调
无。本接口不单独返回异步完成通知。
网络质量检测
- 语法
- (YouMeErrorCode_t)detectNetworkQuality:(int) nDetectTime nOverTime:(int) nOverTime nInterval:(int)nInterval nPackSize:(int)nPackSize;- 功能
开始网络质量检测。如之前的检测还在进行中,再次调用该接口将返回YOUME_ERROR_FREQUENCY_TOO_HIGH = -701(检测频率过快)的返回值。
终止检测网络质量。终止后将不会收到onDetectNetWorkComplete回调。如未在进行网络质量检测就调用该接口将返回YOUME_ERROR_FREQUENCY_TOO_HIGH = -701的返回值。
网络质量检测回调。
- 参数说明
nDetectTime:发包检测时长,单位为秒,建议3秒,范围(0,100]。
nOverTime:检测终止时长,单位为秒,建议4秒,范围(0,110]。
nInterval:发包间隔,单位毫秒,建议20毫秒,范围[20,30000],发包间隔不能超过检测时长或终止时长。
nPackSize:发包大小,单位字节,建议300字节,范围[64,1400]。
bNetworkOK:网络是否可用。(目前如果lossPer<=0.2并且avgRtt<400,就认为网络是可用的,并且这两个阈值将支持服务器动态下发控制)
result:检测的结果值,以json格式返回,目前会返回avgRtt(平均往返延迟,整型,单位毫秒)和lossPer(丢包率,浮点型,范围0.0~1.0)。json格式示例:{"avgRtt":39,"lossPer":0}。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
由 onDetectNetWorkComplete:detectResult: 接收。 检测结果包含 avgRtt(毫秒)和 lossPer(0~1)。
示例与补充说明:
(YouMeErrorCode_t)stopDetectNetworkQuality;- (void)onDetectNetWorkComplete:(bool)bNetworkOK detectResult:(NSString*)result;获取 SDK 版本
- 语法
- (int)getSDKVersion;- 功能
获取 SDK 版本(getSDKVersion)。
- 参数说明
无。
- 返回值
返回压缩整数 SDK 版本号。
- 异步回调
无。本接口不单独返回异步完成通知。
反初始化
- 语法
- (YouMeErrorCode_t)unInit;- 功能
反初始化引擎,可在退出游戏时调用,以释放SDK所有资源。
- 参数说明
无。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
无。本接口不单独返回异步完成通知。
变声相关文档
需要配合游密变声管理模块文档使用。
设置变声是否可用
- 语法
- (YouMeErrorCode_t) setMagicVoiceEnable:(bool)enabled;- 功能
设置变声是否可用。
- 参数说明
enabled:设置变声是否可用,开启后会略微增大声音延迟。
- 返回值
如果成功则返回YOUME_SUCCESS,其它具体参见YouMeErrorCode类型定义。
- 异步回调
无。本接口不单独返回异步完成通知。
