集成思路
如果是自己的小游戏的话,可以把好友等信息直接保存在亲加服务器上,通过调用api来操作。
我们游戏只使用sdk的通信功能,好友等信息保存在自己的服务器上。
用户在登陆游戏的时候,通过算法用用户的唯一ID去登陆 亲加SDK。(去登陆聊天SDK的用户ID或创建群时的ID可以 通过用户ID/公会ID 再用算法加工变换一下生成一个,避免重复)
游戏服务器不集成亲加SDK,只有前端集成。
下面SDK指亲加聊天SDK API接口
服务器通知前端 游戏登陆成功: 前端-调用聊天sdk api登陆 ,前端-从服务器获取聊天室列表,通过sdk进入世界聊天室、(公会)聊天群(如果有公会的话)
服务器通知前端 创建公会成功: 前端-sdk 创建(公会)聊天群【公开群】
服务器通知前端 加入公会成功: 前端-调用sdk 加入(公会)聊天群
服务器通知前端 公会踢出玩家/玩家退出公会 成功: 前端-调用sdk 退出(公会)聊天群 等。
语音API使用
注:如果在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); }
接收语音
接收消息(文本/图片/语音)
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); } } }