IM 模块提供聊天室、私聊、实时语音功能。
接口描述:实时语音登录功能,在初始化完成之后,进入游戏的时候调用。
接口调用:
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", // 私聊表示接受者的 id,群聊表示频道的 roomid
@"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", // 是否翻译成文字 1:翻译 0:不翻译
};
[SuperSDK invoke:@"social" funcName:@"YMStartAudioSpeech" parameters:parameters];
接口描述:停止录音功能(需要在启动录音之后调用),不通过游密发送该语音消息!
接口调用:
[SuperSDK invoke:@"social" funcName:@"YMStopAudioSpeech" 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:@"YMStartAudioSpeech"]) {
if (code==BCORE_SUCCESS) {
NSLog(@"YM 录音成功");
}
else {
NSLog(@"YM 录音失败");
}
}
}
}
日志打印:
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
}
接口描述:根据录音返回的 download_url 链接下载录音文件。
接口调用:
// 语音文件的 url 地址,YMStartAudioSpeech 返回的 downloadURL 地址
NSDictionary *parameters = @{
@"downloadURL" : @"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", // 语音文件的url地址,YMStartAudioSpeech返回的downloadURL地址
@"strSavePath" : @"/var/mobile/Containers/Data/Application/637A42E0-85B7-4CDC-810A-567AF6FA2A86/Library/Caches/AudioRecord/1234567890.wav" // 语音文件的本地存放地址,带文件名的全路径
};
[SuperSDK invoke:@"social" funcName:@"YMDownloadAudioByUrl" parameters:parameters];
日志打印:
moduleName : social,
funcName : YMDownloadAudioByUrl,
parameters : {
"msg":"根据url下载录音文件成功",
"data":{
"audioTime":2,
"strFromUrl":"https:\/\/cn-s-youme-im.s3.cn-north-1.amazonaws.com.cn\/00\/0084cb70c9036dde0493dd97574c12ef.amr?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAPNCTFJWBUFW4LOPA%2F20230823%2Fcn-north-1%2Fs3%2Faws4_request&X-Amz-Date=20230823T085648Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=03597706b336e49ce3a128454f47487ef3a26b1da754220cf99b3221bd4c3252",
"strSavePath":"\/var\/mobile\/Containers\/Data\/Application\/0378A130-F026-4D2F-9C77-6FDEEA52A010\/Library\/Caches\/test.wav"
},
"code":1
}
接口描述:设置录音时用于保存录音文件的缓存目录,如果没有设置,SDK 会在 APP 默认缓存路径下创建一个文件夹用于保存音频文件。
接口调用:
NSDictionary *parameters = @{
@"path" : @"xxx" // 缓存目录绝对路径,需要先创建好该目录
};
[SuperSDK invoke:@"social" funcName:@"YMSetAudioCachePath" parameters:parameters];
接口描述:返回当前设置的录音缓存目录的完整路径。
接口调用:
NSString *path = [SuperSDK invokeString:@"social" funcName:@"YMGetAudioCachePath" parameters:nil];
NSLog(@"%@", path);
// 例: /var/mobile/Containers/Data/Application/DE33ABA8-6717-4D82-933D-246526A1B4F9/Library/Caches/AudioRecord/
接口描述:清空当前设置的录音缓存目录。
接口调用:
BOOL isSuccess = [SuperSDK invokeBool:@"social" funcName:@"YMClearAudioCachePath" parameters:nil]; // 例: 1 成功, 0 失败
接口描述:必须是已经进入的房间。
接口调用:
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
}