unity手游之聊天SDK集成与使用二
2015-11-06 20:17
561 查看
[b]集成思路[/b]
如果是自己的小游戏的话,可以把好友等信息直接保存在亲加服务器上,通过调用api来操作。
我们游戏只使用sdk的通信功能,好友等信息保存在自己的服务器上。
用户在登陆游戏的时候,通过算法用用户的唯一ID去登陆 亲加SDK。(去登陆聊天SDK的用户ID或创建群时的ID可以 通过用户ID/公会ID 再用算法加工变换一下生成一个,避免重复)
游戏服务器不集成亲加SDK,只有前端集成。
下面SDK指亲加聊天SDK API接口
服务器通知前端 游戏登陆成功: 前端-调用聊天sdk api登陆 ,前端-从服务器获取聊天室列表,通过sdk进入世界聊天室、(公会)聊天群(如果有公会的话)
服务器通知前端 创建公会成功: 前端-sdk 创建(公会)聊天群【公开群】
服务器通知前端 加入公会成功: 前端-调用sdk 加入(公会)聊天群
服务器通知前端 公会踢出玩家/玩家退出公会 成功: 前端-调用sdk 退出(公会)聊天群 等。
[b]语音API使用[/b]
注:如果在PC上测试,发送语音,需要插上带麦克的耳机,或者话筒,才能发语音成功。必须监听ChatListener,否则无法收到回调。
创建语音
1.开始录音
2.结束录音
3.在StopTalk的回调里,发送语音
[b]接收语音[/b]
接收消息(文本/图片/语音)
下载语音/图片文件,并播放
如果是自己的小游戏的话,可以把好友等信息直接保存在亲加服务器上,通过调用api来操作。
我们游戏只使用sdk的通信功能,好友等信息保存在自己的服务器上。
用户在登陆游戏的时候,通过算法用用户的唯一ID去登陆 亲加SDK。(去登陆聊天SDK的用户ID或创建群时的ID可以 通过用户ID/公会ID 再用算法加工变换一下生成一个,避免重复)
游戏服务器不集成亲加SDK,只有前端集成。
下面SDK指亲加聊天SDK API接口
服务器通知前端 游戏登陆成功: 前端-调用聊天sdk api登陆 ,前端-从服务器获取聊天室列表,通过sdk进入世界聊天室、(公会)聊天群(如果有公会的话)
服务器通知前端 创建公会成功: 前端-sdk 创建(公会)聊天群【公开群】
服务器通知前端 加入公会成功: 前端-调用sdk 加入(公会)聊天群
服务器通知前端 公会踢出玩家/玩家退出公会 成功: 前端-调用sdk 退出(公会)聊天群 等。
[b]语音API使用[/b]
注:如果在PC上测试,发送语音,需要插上带麦克的耳机,或者话筒,才能发语音成功。必须监听ChatListener,否则无法收到回调。
创建语音
1.开始录音
api.StartTalk (new GotyeUser(talkToName),GotyeWhineMode.GotyeWhineModeDefault,false,600000);
2.结束录音
api.StopTalk();
3.在StopTalk的回调里,发送语音
public void onStopTalk(GotyeStatusCode code, bool realtime, GotyeMessage message) { //StartTalk里参数是否是实时语音必须为false,否则message为null //发送语音 api.SendMessage(message); }
[b]接收语音[/b]
接收消息(文本/图片/语音)
public override void onReceiveMessage(GotyeMessage message) { if (message.Type == GotyeMessageType.Text) { } else if(message.Type == GotyeMessageType.Audio) { if(File.Exists(message.Media.Path))//如果本地有这个语音文件,直接播放这个消息 { api.PlayMessage(message); } else { //下载语音文件 api.DownloadMediaInMessage(message); } } }
下载语音/图片文件,并播放
public void onDownloadMediaInMessage(GotyeStatusCode code, GotyeMessage message) { if (code == GotyeStatusCode.CodeOK) { if (message.Type == GotyeMessageType.Image) { Debug.Log ("下载消息中的图片成功!"); } else if (message.Type == GotyeMessageType.Audio) { Debug.Log ("下载消息中的音频成功!"); GotyeMedia media = message.Media; //播放语音 api.PlayMessage(message); } } }
相关文章推荐
- Unity3d的Input.location在ios8以上版本不能正常工作的解决方案
- Unity3D GUI之自定义风格组件
- IOC容器——Unity深度解析(三)
- IOC容器——Unity深度解析(二)
- IOC容器——Unity 深度解析(一)
- IOC容器——Unity
- Unity5.0中的新酷炫动画功能
- Unity5.0 AssetBundle 实验
- Unity3D通过对象池模式 管理场景中的元素
- unity笔录
- Unity Water Shader
- Unity3D研究院之Prefab里面的Prefab关联问题(转)
- Unity3D技术之键盘、操纵杆和游戏手柄输入实现详解
- 【小松教你手游开发】【面试必读(编程基础)】Unity内存申请和释放
- 【浅墨Unity3D Shader编程】
- Unity3D GUI学习
- 在Unity项目中使用Git
- Unity获取安卓电量和时间
- unity中的碰撞检测
- Unity与android交互错误集合