此文档是掌趣语音SDK 接入说明。
为了游戏进行中进行语音聊天,进行语音聊天的统一上传下载,识别中文。
基本流程:
接入掌趣的游戏及应用开发者,包括游戏客户端工程师及产品运营人员。
设备 :玩家用于安装运行游戏和应用的手机,平板,电脑等硬件设施;
直接从<资源,LIB库和配置文件>中复制所有lib库到游戏工程的相应目录,包含libs及assets。
注意:
1.由MIS平台获取的ourpalm.cfg请放到APK的assets文件夹的根目录。
2.libs里面的so注意CPU架构
请游戏直接从<资源,LIB库和配置文件>中AndroidManifest.xml中复制当前渠道所需配置的内容,内有详细的注释说明。如不清楚请咨询掌趣SDK技术人员。
掌趣语音SDK所需要的权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.WRITE_SETTINGS" />
导入过程中可能因为重复引用LIB库导致编译报错,在项目工程中移除重复的LIB库即可。
功能说明 :
1、如果接入掌趣base sdk,需要先调用base sdk初始化接口Ourpalm_Init后再调用本接口
接口定义 :
Ourpalm_Voice.getInstance().init(Context context);
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| context | 必传 | Context | 传入上下文 |
接口示例 :
Ourpalm_Voice.getInstance().init(Context);
功能说明 :
成功登陆游戏并进入游戏后,游戏客户端必须调用此接口设置用户的角色信息,角色信息在其他统计功能接口中需要用到。
接口定义 :
public void setGameInfo(Ourpalm_GameInfoCallBack callback)
参数说明 :
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| callback | 必选 | Ourpalm_GameInfoCallBack | 游戏客户端必须实现这个游戏信息回调类,最好返回动态的游戏信息值(变量),便于统计实时的游戏信息。 |
接口示例:
Ourpalm_Voice.getInstance().getInstance().setGameInfo(newOurpalm_GameInfoCallBack() {@Overridepublic String getGameServerId() {//实时返回游戏服务器ID 变量返回,如没有,返回” ”return "1";}@Overridepublic String getGameRoleVipLevel() {//实时返回游戏角色VIP等级 变量返回,如没有,返回” ”return "2";}@Overridepublic String getGameRoleName() {//实时返回游戏角色名称 变量返回,如没有,返回” ”return "测试角色";}@Overridepublic String getGameRoleLevel() {//实时返回游戏角色等级 变量返回,如没有,返回” ”return "100";}@Overridepublic String getGameRoleId() {//实时返回游戏角色ID 变量返回,如没有,返回””return "987654321";}});
功能说明:
进行录音,识别文字,并上传服务器接口
接口定义:
Ourpalm_Voice.getInstance().OupalmStartRecord(OurplamActivity.this,”1”,true,new OurpalmSendVoiceListener() {@Overridepublic void result(String code,String result) {Logs.i("info", "code="+code+ " result="+result);try {JSONObject mObject = new JSONObject(result);mObject.getString("voiceToWord"),mObject.getString("voiceId"));} catch (Exception e) {e.printStackTrace();}}});
返回参数说明:
(1)上传成功返回的参数格式为:
code为0
result为:
{"voiceToWord":"测试","voiceId":"11149216294512701","localVoiceId":"31","status":"0"}
status : 为状态码。0 为成功
voiceToWord : 语音文件识别的后的文字
voiceId : 语音上传成功后掌趣语音文件Id
localVoiceId:游戏上传的当前聊天列表的Id ,为了和voiceId 做对应。
(2)如果由于网络原因上传语音文件失败,会返回
code 为1
result为
{"voiceToWord":"测试",localVoiceId":"31","status":"1"}
需要继续调用重新发送接口,下面会说明
(3)如果语音文件为生成,或者语音引擎的问题,未生成语音文件
code 为2
result返回""字符串请游戏做好判断。
功能说明:
由于网络等原因上传失败时,游戏根据返回的参数,进行重新发送语音文件
接口定义:
/**\* 重复发送录音\* @param localVoiceId\* @param word\* @param sendListener*/public void OurpalmSendVoice(Context context,String localVoiceId,String word,OurpalmSendVoiceListener sendListener)
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Context | 必须 | context | 当前上下文 |
| localVoiceId | 必须 | 游戏的聊天列表Id | 游戏的列表Id |
| word | 必须 | String | 返回给游戏语音识别的文字数据 |
| OurpalmSendVoiceListener | 必须 | OurpalmSendVoiceListener | 上传的回调 |
接口示例:
Ourpalm_Voice.getInstance().OurpalmSendVoice(OurplamActivity.this,localVoiceId,word ,new OurpalmSendVoiceListener() {@Overridepublic void result(String code,String result) {Logs.i("info", "code="+code+ " result="+result);try {JSONObject mObject = new JSONObject(result);mObject.getString("voiceToWord"),mObject.getString("voiceId"));} catch (Exception e) {e.printStackTrace();}}});
返回参数说明:
(1)上传成功返回的参数格式为:
code为0
result为:
{"voiceToWord":"测试","voiceId":"11149216294512701","localVoiceId":"31","status":"0"}
status : 为状态码。0 为成功
voiceToWord : 语音文件识别的后的文字
voiceId : 语音上传成功后掌趣语音文件Id
localVoiceId:游戏上传的当前聊天列表的Id ,为了和voiceId 做对应。
(2)如果由于网络原因上传语音文件失败,会返回
code 为1
result为:
{"voiceToWord":"测试",localVoiceId":"31","status":"1"}
需要继续调用重新发送接口,下面会说明
(3)如果语音文件为生成,或者语音引擎的问题,未生成语音文件
code为2
result返回""字符串请游戏做好判断。
功能说明 :
游戏传入返回的掌趣语音Id 进行语音文件播放
接口定义:
/**\* 播放录音\* @param voiceId\*@param playListener*/public void OupalmPlayVocie(Context context,String voiceId,OurpalmVoicePlayListener playListener)
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| Context | 必须 | context | 当前上下文 |
| voiceId | 必须 | 掌趣语音Id | 上传成功后返回的服务器Id |
| OurpalmVoicePlayListener | 必须 | OurpalmVoicePlayListener | 播放语音的回调 |
接口示例:
Ourpalm_Voice.getInstance().OupalmPlayVocie(Context,voiceId,new OurpalmVoicePlayListener() {@Overridepublic void PlayError() {Log.i("info","PlayError");}@Overridepublic void PlayEnd() {Log.i("info","PlayEnd");});
返回参数说明:
如果语音播放完毕,会自动回调PlayEnd(),游戏可调用播放接口,进行下一段语音的播放。
用于游戏当前频道自动播放语音的场景。
当然语音文件不存在或者语音格式错误会回调PlayError()
功能说明:
暂停语音文件播放,这个接口一般不会用到,一般语音播放完毕后会自动停止并回调上面的语音播放结束回调
接口定义:
public void OupalmStopPlayVoice();
接口示例:
Ourpalm_Voice.getInstance().OupalmStopPlayVoice();
功能说明:
停止当前录音上传接口,如果语音文件生成成功,会自动回调OurpalmSendVoiceListener的回调,一般录音说话结束后,SDK会自动识别停止录音并回调。建议这个接口游戏使用自己的录音UI界面时使用。
接口定义:
public void OupalmStopRecord()
接口示例 :
Ourpalm_Voice.getInstance().OupalmStopRecord();
功能说明 :
游戏退出时调用,释放资源,防止内存泄漏。
接口定义:
Ourpalm_Voice.getInstance().Destory()