社交模块提供接入第三方社交SDK的功能支持,目前支持QQ提供的社交功能。
游戏需要先找SuperSDK对外接口人沟通。该模块还需要第三方社交团队的支持。
社交模块下分若干个渠道,可同时接入多个渠道,目前只支持手Q渠道。
[SuperSDK invoke:@"social" funcName: @"CafeStartHome" parameters: nil];
/**
* 运行微件
*/
[SuperSDK invoke:@"social" funcName: @"CafeStartWidget" parameters: nil];
/**
* 关闭微件
*/
[SuperSDK invoke:@"social" funcName: @"CafeStopWidget" parameters: nil];
接口说明:社区初始化必须放在SuperSDK初始化成功后调用。
接口调用:
/*
语言请传入对应的语言字符串类型
中文:YZPlayLanguageTypeZh, 繁体中文:YZPlayLanguageTypeZhHantCN, 英语:YZPlayLanguageTypeEn, 葡萄牙语:YZPlayLanguageTypePt,
俄语:YZPlayLanguageTypeRu, 西班牙语:YZPlayLanguageTypeEs, 土耳其语:YZPlayLanguageTypeTr, 法语:YZPlayLanguageTypeFr,
德语:YZPlayLanguageTypeDe, 印度尼西亚语:YZPlayLanguageTypeId, 意大利语:YZPlayLanguageTypeIt, 波兰语:YZPlayLanguageTypePl,
泰语:YZPlayLanguageTypeTh, 越南语:YZPlayLanguageTypeVi,
*/
[SuperSDK invoke:@"social" funcName:@"YZPInit" parameters:@{
@"language" : @"YZPlayLanguageTypeZh"// 语言类型
}];
接口说明:进入游戏时调用,登录票据、角色信息、服务器信息必须要传。
接口调用:
[SuperSDK invoke:@"social" funcName:@"YZPLogin" parameters:@{
@"role_name": @"墨韵",// 角色名
@"role_id" : @"1200008",// 角色编号
@"server_id": @"190001",// 服务器编号
@"osdk_ticket" : @"osdk_ticket票据",// SuperSDK登录返回的票据
@"avatar_identity" : @"21"// 头像唯一标识符,可不传
}];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YZPLogin"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"社区登录成功");
}
else {
NSLog(@"社区登录失败,原因:%@", desc);
}
}
}
}
回调日志打印:
2018-01-23 16:16:34.306198+0800 youzu[16789:3903293] ****** 收到回调
moduleName : social,
funcName : YZPLogin,
parameters : {"msg":"社区登录成功","code":1}
2018-01-23 16:16:34.306392+0800 youzu[16789:3903293] 社区登录成功
接口说明:当该接口返回YES时,后面的接口才可以调用
接口调用:
BOOL avaliable = [SuperSDK invokeBool:@"social" funcName:@"YZPAvaliable" parameters:nil];
NSLog(@"%@", (avaliable?@"社区可用":@"社区不可用"));
接口调用:
BOOL avaliable = [SuperSDK invokeBool:@"social" funcName:@"YZPAvaliable" parameters:nil];
if (avaliable) {
[SuperSDK invoke:@"social" funcName:@"YZPShow" parameters:nil];
}
接口调用:
BOOL avaliable = [SuperSDK invokeBool:@"social" funcName:@"YZPAvaliable" parameters:nil];
if (avaliable) {
[SuperSDK invoke:@"social" funcName:@"YZPClose" parameters:nil];
}
接口说明:在监听到社区页面打开时,建议关闭游戏声音,防止和社区音视频冲突;监听到社区页面关闭时,对应的恢复游戏声音。
接口调用
[SuperSDK invoke:@"social" funcName:@"YZPSetViewAppearListener" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YZPSetViewAppearListener"]) {
if (code==1) {
NSLog(@"社区页面打开了");// 社区页面打开了,建议关闭游戏声音
}
else {
NSLog(@"社区页面关闭了");// 社区页面关闭了,建议恢复游戏声音
}
}
}
}
回调日志打印:
2018-01-23 16:14:57.478860+0800 youzu[16789:3903293] ****** 收到回调
moduleName : social,
funcName : YZPSetViewAppearListener,
parameters : {"msg":"社区界面打开","code":1}
2018-01-23 16:14:57.479068+0800 youzu[16789:3903293] 社区页面打开了
2018-01-23 16:15:02.064409+0800 youzu[16789:3903293] ****** 收到回调
moduleName : social,
funcName : YZPSetViewAppearListener,
parameters : {"msg":"社区界面关闭","code":0}
2018-01-23 16:15:02.064685+0800 youzu[16789:3903293] 社区页面关闭了
接口说明:在收到SuperSDK注销成功回调后,调用社区注销接口
接口调用:
[SuperSDK invoke:@"social" funcName:@"YZPLogout" parameters:nil];
游戏可以使用IMSDK模块实现聊天室、私聊、实时语音功能。
接口调用:
NSDictionary *parameters = @{
@"user_id" : @"100",
@"password" : @"123456",
@"token" : @"" // 使用服务器token验证模式时使用该参数,否则使用空字符串
};
[SuperSDK invoke:@"social" funcName:@"YMLogin" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMLogin"]) {// YM登录回调
if (code==BCORE_SUCCESS) {
NSLog(@"YM登录成功,user_id为%@", data[@"user_id"]);
}
else {
NSLog(@"YM登录失败,原因:%@", desc);
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMLogin,
parameters : {"msg":"登录成功","data":{"user_id":"100"},"code":1}
接口调用:
[SuperSDK invoke:@"social" funcName:@"YMLogout" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMLogout"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM注销成功");
}
else {
NSLog(@"YM注销失败,原因:%@", desc);
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMLogout,
parameters : {"msg":"注销成功","code":1}
接口调用:
NSDictionary *parameters = @{
@"room_id" : @"1000",
};
[SuperSDK invoke:@"social" funcName:@"YMJoinChatRoom" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMJoinChatRoom"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM加入频道成功,room_id为:%@", data[@"room_id"]);
}
else {
NSLog(@"YM加入频道失败,room_id为:%@", data[@"room_id"]);
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMJoinChatRoom,
parameters : {"msg":"加入频道成功","data":{"room_id":"1000"},"code":1}
接口调用:
NSDictionary *parameters = @{
@"room_id" : @"1000",
};
[SuperSDK invoke:@"social" funcName:@"YMLeaveChatRoom" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMLeaveChatRoom"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM离开频道成功,room_id为:%@", data[@"room_id"]);
}
else {
NSLog(@"YM离开频道失败,room_id为:%@", data[@"room_id"]);
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMLeaveChatRoom,
parameters : {"msg":"离开频道成功","data":{"room_id":"1000"},"code":1}
接口调用:
NSDictionary *parameters = @{
@"receiver_id" : @"100", //接收者的user_id或者room_id
@"chat_type" : @"1", // 1 私聊、 2 聊天室
@"content" : @"文本消息内容",
};
[SuperSDK invoke:@"social" funcName:@"YMSendTextMessage" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMSendTextMessage"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM发送消息成功,消息id:%@", data[@"message_id"]);
}
else {
NSLog(@"YM发送消息失败,消息id:%@", data[@"message_id"]);
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMSendTextMessage,
parameters : {
"msg":"发送消息成功",
"data":{
"forbid_end_time":0,
"message_id":1528372098303,
"is_forbid_room":false,
"send_time":1528375337,
"reason_type":0
},
"code":1
}
发送语音消息,同时会回调语音识别出来的文字
接口调用:
NSDictionary *parameters = @{
@"receiver_id" : @"100", // 接收者 用户ID 或者 频道ID,私聊传入userid,频道聊天传入roomid
@"chat_type" : @"1", // 1 私聊、 2 聊天室
};
[SuperSDK invoke:@"social" funcName:@"YMStartRecordAudioMessage" parameters:parameters];
仅发送语音消息,不会将语音识别成文字
接口调用:
NSDictionary *parameters = @{
@"receiver_id" : @"100", // 接收者 用户ID 或者 频道ID,私聊传入userid,频道聊天传入roomid
@"chat_type" : @"1", // 1 私聊、 2 聊天室
};
[SuperSDK invoke:@"social" funcName:@"YMStartOnlyRecordAudioMessage" parameters:parameters];
接口调用:
NSDictionary *parameters = @{
@"attach_msg" : @"" // 透传消息字符串,可以用来附加一些用户的其他属性
};
[SuperSDK invoke:@"social" funcName:@"YMStopAndSendAudioMessage" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMStopAndSendAudioMessage"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM发送语音消息成功,message_content:%@", data[@"message_content"]);
}
else {
NSLog(@"YM发送语音消息失败,message_content:%@", data[@"message_content"]);
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMStopAndSendAudioMessage,
parameters : {
"msg":"发送语音消息成功",
"data":{
"message_content":"喂喂喂",
"send_time":1528376335,
"is_forbid_room":false,
"message_id":1528376309021,
"audio_time":5,
"forbid_end_time":0,
"path":"\/var\/mobile\/Containers\/Data\/Application\/53EB7877-E862-40D4-B57D-32C622663E84\/Library\/Caches\/AudioRecord\/2611715137.pcm.wav",
"reason_type":0
},
"code":1
}
接口调用:
[SuperSDK invoke:@"social" funcName:@"YMCancleAudioMessage" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMCancleAudioMessage"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM取消录音成功");
}
else {
NSLog(@"YM取消录音失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMCancleAudioMessage,
parameters : {"msg":"取消录音成功","code":1}
接口调用:
NSDictionary *parameters = @{
@"path" : self.lastSendAudioPath
};
[SuperSDK invoke:@"social" funcName:@"YMStartPlayAudio" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMStartPlayAudio"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM播放语音消息成功,path:%@", data[@"path"]);
}
else {
NSLog(@"YM播放语音消息成功,path:%@", data[@"path"]);
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMStartPlayAudio,
parameters : {"msg":"播放语音成功","data":{"path":"\/var\/mobile\/Containers\/Data\/Application\/3FF94CCD-DB55-44EC-B74B-D108FF1B85F0\/Library\/Caches\/AudioRecord\/3992812021.pcm.wav"},"code":1}
接口调用:
[SuperSDK invoke:@"social" funcName:@"YMStopPlayAudio" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMStopPlayAudio"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"停止语音播放成功");
}
else {
NSLog(@"停止语音播放成功");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMStopPlayAudio,
parameters : {
"msg" : "停止语音播放成功",
"code" : 1
}
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMOnReceiveMessage"]) {
if (code==BCORE_SUCCESS) {
int messageType = [data[@"message_type"] intValue];
NSString *sender = [data[@"chat_type"] isEqualToString:@"0"] ? @"私聊" : @"聊天室";
switch (messageType) {
case 0: //文本消息
NSLog(@"收到%@发来的%@消息,消息内容:%@",data[@"sender_id"], sender, data[@"message_content"]);
break;
case 1: //语音消息
imVC.lastRecvAudioPath = data[@"path"];
NSLog(NSString stringWithFormat:@"收到%@发来的%@语音消息,文字识别结果:%@,fileSize:%@,audioTime:%@",data[@"sender_id"], sender, data[@"message_content"], data[@"file_size"], data[@"audio_time"]);
break;
default:
break;
}
}
else {
}
}
}
}
回调日志打印:
文本消息回调
****** 收到回调
moduleName : social,
funcName : YMOnReceiveMessage,
parameters : {
"msg":"收到文字消息",
"data":{
"message_content":"文本消息内容",
"distance":0,
"message_id":1528688724416,
"message_type":"0",
"create_time":1528688724,
"chat_type":"0",
"receiver_id":"100",
"sender_id":"100"
},
"code":1
}
语音消息回调
****** 收到回调
moduleName : social,
funcName : YMOnReceiveMessage,
parameters : {
"msg":"收到语音消息",
"data":{
"message_content":"发送语音消息。",
"distance":0,
"message_id":1528700010992,
"message_type":"1",
"file_size":163738,
"audio_time":5,
"create_time":1528700010,
"path":"\/var\/mobile\/Containers\/Data\/Application\/9488D459-EBF8-4C25-94F4-849779C0F5BB\/Library\/Caches\/YIMVoiceCache\/1528700010992.wav",
"chat_type":"0",
"receiver_id":"100",
"sender_id":"100"
},
"code":1
}
接口调用:
NSDictionary *parameters = @{
@"user_id" : @"100",
@"room_id" : @"1000",
};
[SuperSDK invoke:@"social" funcName:@"YMJoinChannelSingleMode" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMJoinChannelSingleMode"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM加入语音频道成功");
}
else {
NSLog(@"YM加入语音频道失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMJoinChannelSingleMode,
parameters : {"msg":"加入语音频道成功","data":{"room_id":"1000","param":"100"},"code":1}
接口调用:
[SuperSDK invoke:@"social" funcName:@"YMLeaveChannelAll" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMLeaveChannelAll"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM离开语音频道成功");
}
else {
NSLog(@"YM离开语音频道失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMLeaveChannelAll,
parameters : {"msg":"离开语音频道成功","data":{"room_id":"","param":""},"code":1}
启动录音,不通过游密发送该语音消息!结束录音调用“停止录音”,取消录音调用“取消语音”;
接口调用:
NSDictionary *parameters = @{
@"translate" : @"0", // 0——不翻译语音,1——翻译语音
};
[SuperSDK invoke:@"social" funcName:@"YMStartAudioSpeech" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMStartAudioSpeech"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM录音成功");
}
else {
NSLog(@"YM录音失败");
}
}
}
}
回调日志打印:
2020-12-17 16:07:19.949402+0800 DemoMubao[11167:6420176] ****** 收到回调
moduleName : social,
funcName : YMStartAudioSpeech,
parameters : {
"msg":"录音成功",
"data":{
"path":"/var/mobile/Containers/Data/Application/637A42E0-85B7-4CDC-810A-567AF6FA2A86/Library/Caches/AudioRecord/3033701311.wav",
"audio_time":4,
"message_content":"一二三四五六七。",
"download_url":"https://cn-s-youme-im.s3.cn-north-1.amazonaws.com.cn/9f/9f47e7d27a6246b8a4ddd8ff844cfc14.amr?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAPNCTFJWBUFW4LOPA%2F20201217%2Fcn-north-1%2Fs3%2Faws4_request&X-Amz-Date=20201217T080719Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f994b561c0de1f09ea5e409dcd5631ee45cf4f1b7bb3b496816aa1a315db1a67",
"file_size":117452
},
"code":1
}
停止录音,不通过游密发送该语音消息!
接口调用:
[SuperSDK invoke:@"social" funcName:@"YMStopAudioSpeech" parameters:nil];
默认普通话
接口调用:
NSDictionary *parameters = @{
@"language" : @"0", // 0-5普通话 粤语 四川话 河南话 英语 繁体
};
[SuperSDK invoke:@"social" funcName:@"YMSetSpeechRecognizeLanguage" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMSetSpeechRecognizeLanguage"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM设置语言成功");
}
else {
NSLog(@"YM设置语言失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMSetSpeechRecognizeLanguage,
parameters : {
"msg" : "设置语言成功",
"code" : 1
}
接口调用:
NSDictionary *parameters = @{
@"room_id" : @"1000",
};
[SuperSDK invoke:@"social" funcName:@"YMGetRoomMemberCount" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMGetRoomMemberCount"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM获取房间成员数量成功,room_id为%@,count为%@", data[@"room_id"], data[@"count"]);
}
else {
NSLog(@"YM获取房间成员数量失败,room_id为%@,count为%@", data[@"room_id"], data[@"count"]);
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMGetRoomMemberCount,
parameters : {"msg":"获取房间成员数量成功","data":{"room_id":"1000","count":1},"code":1}
适用于语音转文字,再发送文字消息
接口调用:
NSDictionary *parameters = @{
@"recognition" : @"1", //0识别语音文字并发送语音消息、其他只识别语音的文字
};
[SuperSDK invoke:@"social" funcName:@"YMSetOnlyRecognizeSpeechText" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMSetOnlyRecognizeSpeechText"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM设置只识别语音文字成功");
}
else {
NSLog(@"YM设置只识别语音文字失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMSetOnlyRecognizeSpeechText,
parameters : {
"msg" : "设置只识别语音文字成功",
"code" : 1
}
只识别语音文字不发送消息的回调
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMOnGetRecognizeSpeechText"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM识别语音文字成功,message_content:%@", data[@"message_content"]);
}
else {
NSLog(@"YM识别语音文字失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMOnGetRecognizeSpeechText,
parameters : {
"msg" : "识别语音文字成功",
"data" : {
"message_content" : "嘿嘿。",
"message_id" : 1529490319218
},
"code" : 1
}
接口调用:
NSDictionary *parameters = @{
@"user_id" : @"100",
@"block" : @"1", //0解除屏蔽/其他屏蔽
};
[SuperSDK invoke:@"social" funcName:@"YMBlockUser" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMBlockUser"]) {
if (code==BCORE_SUCCESS) {
NSString *state = [data[@"block"] isEqualToString:@"0"] ? @"解除屏蔽" : @"屏蔽";
NSLog(@"YM%@成功,用户:%@ 状态:%@", state, data[@"user_id"], state);
}
else {
NSLog(@"YM屏蔽/解除屏蔽失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMBlockUser,
parameters : {
"msg" : "屏蔽成功",
"data" : {
"user_id" : "100",
"block" : "1"
},
"code" : 1
}
接口调用:
[SuperSDK invoke:@"social" funcName:@"YMUnBlockAllUser" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMUnBlockAllUser"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM解除所有已屏蔽用户成功");
}
else {
NSLog(@"YM解除所有已屏蔽用户失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMUnBlockAllUser,
parameters : {
"msg" : "解除所有已屏蔽用户成功",
"code" : 1
}
接口调用:
[SuperSDK invoke:@"social" funcName:@"YMGetBlockUsers" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMGetBlockUsers"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM获取被屏蔽用户成功,列表:%@", data[@"user_list"]);
}
else {
NSLog(@"YM获取被屏蔽用户失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMGetBlockUsers,
parameters : {
"msg" : "获取被屏蔽消息用户成功",
"data" : {
"user_list" : [
"100"
]
},
"code" : 1
}
对用户的违规行为进行举报,管理员在后台进行审核处理并将结果通知用户
接口调用:
NSDictionary *parameters = @{
@"user_id" : @"100", //被举报用户ID
@"chat_type" : @"2", //1 私聊、 2 聊天室
@"reason" : @"100", //原因
@"description" : @"这人有毒", //原因描述
@"nickname" : @"二狗子", //昵称
@"level" : @"999", //角色等级
@"vip_level" : @"9999", //VIP等级
};
[SuperSDK invoke:@"social" funcName:@"YMAccusation" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMAccusation"]) {
NSString *result = @"";
switch ([data[@"result"] intValue]) {
case 0:
result = @"忽略";
break;
case 1:
result = @"警告";
break;
case 2:
result = @"禁言";
break;
default:
break;
}
NSLog(@"YM收到举报处理结果,用户:%@,时间:%@,结果:%@", data[@"user_id"], data[@"accusation_time"], result);
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMAccusation,
parameters : {
"msg" : "收到举报处理结果",
"data" : {
"user_id" : "100",
"result" : "1",
"accusation_time" : 1529571229
},
"code" : 1
}
默认输出到扬声器,在加入房间成功后设置,如无听筒输出的需求尽量不要调用该接口
接口调用:
NSDictionary *parameters = @{
@"loudspeaker" : @"0", // 0——输出到扬声器,1——输出到听筒
};
[SuperSDK invoke:@"social" funcName:@"YMsetOutputToSpeaker" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMsetOutputToSpeaker"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM切换语音输出设备成功");
}
else {
NSLog(@"YM切换语音输出设备失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMsetOutputToSpeaker,
parameters : {
"msg" : "切换语音输出设备成功",
"code" : 1
}
打开/关闭扬声器。该状态值在加入房间成功后设置才有效
接口调用:
NSDictionary *parameters = @{
@"mute" : @"0", // 0——关闭扬声器,1——开启扬声器
};
[SuperSDK invoke:@"social" funcName:@"YMsetSpeakerMute" parameters:parameters];
打开/关闭麦克风。该状态值在加入房间成功后设置才有效
接口调用:
NSDictionary *parameters = @{
@"mute" : @"0", // 0——关闭麦克风,1——开启麦克风
};
[SuperSDK invoke:@"social" funcName:@"YMsetMicrophoneMute" parameters:parameters];
设置当前程序输出音量大小。建议该状态值在加入房间成功后按需再重置一次。
接口调用:
NSDictionary *parameters = @{
@"volume" : @"66", // 音量大小,范围[0-100]
};
[SuperSDK invoke:@"social" funcName:@"YMSetVolume" parameters:parameters];
获取当前程序输出音量大小,此音量值为程序内部的音量,与系统音量相乘得到程序使用的实际音量。
接口调用:
[SuperSDK invoke:@"social" funcName:@"YMGetVolume" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMGetVolume"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"当前程序输出音量大小为%@", data[@"volume"]);
}
else {
NSLog(@"YM获取当前程序输出音量大小失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMGetVolume,
parameters : {
"msg" : "获取当前程序输出音量大小成功",
"data" : {
"volume" : 66
},
"code" : 1
}
设置当麦克风静音时,是否释放麦克风设备(需要在初始化成功后,加入房间之前调用) 释放—-当麦克风静音时,释放麦克风设备,此时允许第三方模块使用麦克风设备录音。 不释放–不管麦克风是否静音,麦克风设备都会被占用。
接口调用:
NSDictionary *parameters = @{
@"releasemic" : @"0", // 0——释放麦克风,1——不释放麦克风
};
[SuperSDK invoke:@"social" funcName:@"YMSetReleaseMicWhenMute" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName parameters:(NSString *)parameters
{
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
NSDictionary *retParam = nil;
if (parameters) {
NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue];
NSString *desc = [retParam objectForKey:@"msg"];
id data = [retParam objectForKey:@"data"];
if ([moduleName isEqualToString:@"social"]) {
if ([funcName isEqualToString:@"YMSetReleaseMicWhenMute"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM设置静音释放麦克风成功");
}
else {
NSLog(@"YM设置静音释放麦克风失败");
}
}
}
}
回调日志打印:
****** 收到回调
moduleName : social,
funcName : YMSetReleaseMicWhenMute,
parameters : {
"msg" : "设置静音释放麦克风成功",
"code" : 1
}