此文档是掌趣语音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() {
@Override
public String getGameServerId() {
//实时返回游戏服务器ID 变量返回,如没有,返回” ”
return "1";
}
@Override
public String getGameRoleVipLevel() {
//实时返回游戏角色VIP等级 变量返回,如没有,返回” ”
return "2";
}
@Override
public String getGameRoleName() {
//实时返回游戏角色名称 变量返回,如没有,返回” ”
return "测试角色";
}
@Override
public String getGameRoleLevel() {
//实时返回游戏角色等级 变量返回,如没有,返回” ”
return "100";
}
@Override
public String getGameRoleId() {
//实时返回游戏角色ID 变量返回,如没有,返回””
return "987654321";
}
});
功能说明:
进行录音,识别文字,并上传服务器接口
接口定义:
Ourpalm_Voice.getInstance().OupalmStartRecord(OurplamActivity.this,”1”,true,new OurpalmSendVoiceListener() {
@Override
public 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() {
@Override
public 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() {
@Override
public void PlayError() {
Log.i("info","PlayError");
}
@Override
public 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()