集成思路
如果是自己的小游戲的話,可以把好友等信息直接保存在親加服務器上,通過調用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); } } }