Appearance
初始化
方法名
initAIUIAgent
用法
- 用法如下:js
module.initAIUIAgent({ params: { assetPath: "cfg/aiui_phone.cfg", }, success: (res) => { // console.log(JSON.stringify(res)) let data = res.data || {}; let type = data.type || "" let eventType = data.eventType; let eventData = data.data || {}; let arg1 = data.arg1; let arg2 = data.arg2; let info = data.info; if (type == "onSuccess") { //初始化成功 this.isInit = true; console.log("初始化成功") } else if (type == "onRecordResult") { //录音结果 let path = data.path || ""; console.log("录音文件路径:" + path) } else if (type == "onEvent") { try { //事件 switch (eventType) { case AIUIConstant.EVENT_CONNECTED_TO_SERVER: console.log("已连接服务器") break case AIUIConstant.EVENT_SERVER_DISCONNECTED: console.log("与服务器断连") break case AIUIConstant.EVENT_WAKEUP: console.log("进入识别状态") break case AIUIConstant.EVENT_RESULT: let bizParamJson = JSON.parse(info) console.log(bizParamJson); break case AIUIConstant.EVENT_ERROR: console.log("错误: " + arg1 + ";" + info) break case AIUIConstant.EVENT_START_RECORD: console.log("已开始录音") this.mResultEdt = '录音已开始,你可以朗读以下文字片段,也可以自由说一段话:\n'; this.mResultEdt += '月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。虽然是满月,天上却有一层淡淡的云,所以不能朗照;但我以为这恰是到了好处——酣眠固不可少,小睡也别有风味的。'; break case AIUIConstant.EVENT_STOP_RECORD: console.log("已停止录音") break case AIUIConstant.EVENT_CMD_RETURN: if (AIUIConstant.CMD_VOICE_CLONE == arg1) { //数据同步的返回 let dtype = eventData[AIUIConstant.KEY_SYNC_DTYPE] || -1 let retCode = arg2; /** * retCode取值如下: * * | 错误码 | 说明 | * | :----- | :-------------------------------| * | 900400 | 参数非法 | * | 900401 | 应用鉴权异常 | * | 900402 | 授权已经用完,复刻资源数量已经达到上限 | * | 900403 | 没有授权,请先开通 | * | 900500 | 内部服务错误 | * | 900501 | 数据库异常 | * | 900601 | 声音复刻失败 | */ switch (dtype) { case AIUIConstant.VOICE_CLONE_REG: // 声音注册结果 if (retCode == AIUIConstant.SUCCESS) { this.mCurResId = eventData[AIUIConstant.KEY_RES_ID] || "" console.log("注册成功,res_id=" + this.mCurResId) } else { console.log("注册失败,error=" + retCode + "," + AIUIErrorCode[retCode]) } break case AIUIConstant.VOICE_CLONE_DEL: // 声音删除结果 if (retCode == AIUIConstant.SUCCESS) { this.mCurResId = ""; console.log("删除成功") } else { console.log("删除失败,error=" + retCode + "," + AIUIErrorCode[retCode]) } break case AIUIConstant.VOICE_CLONE_RES_QUERY: // 已注册声音查询结果 if (retCode == AIUIConstant.SUCCESS) { let result = eventData["result"] || "{}"; let resultJson = JSON.parse(result); let dataArray = resultJson.data; if (dataArray) { console.log("查询结果:" + JSON.stringify(dataArray)) } else { console.log("没有注册资源") } } break } } break } } catch (e) { console.log("错误:" + e.message) } } }, fail: (res) => { console.log("初始化失败") } })jsmodule.initAIUIAgent({ params: { assetPath: "cfg/aiui_phone.cfg", }, success: (res) => { console.log(JSON.stringify(res)) let data = res.data; let type = data.getString("type"); let eventType = data.getNumber("eventType"); let eventData = data.getJSON("data") let arg1 = data?.getNumber("arg1"); let arg2 = data?.getNumber("arg2"); let info = data?.getString("info"); if (type == "onSuccess") { //初始化成功 isInit.value = true; console.log("初始化成功") } else if (type == "onRecordResult") { //录音结果 let path = data?.getString("path"); console.log("录音文件路径:" + path) } else if (type == "onEvent") { try { switch (eventType) { case AIUIConstant.EVENT_CONNECTED_TO_SERVER: console.log("已连接服务器") break case AIUIConstant.EVENT_SERVER_DISCONNECTED: console.log("与服务器断连") break case AIUIConstant.EVENT_WAKEUP: console.log("进入识别状态") break case AIUIConstant.EVENT_RESULT: if (info != null) { let bizParamJson = JSON.parse(info) console.log(bizParamJson); } break case AIUIConstant.EVENT_ERROR: console.log("错误: " + arg1 + ";" + info) break case AIUIConstant.EVENT_START_RECORD: console.log("已开始录音") mResultEdt.value = '录音已开始,你可以朗读以下文字片段,也可以自由说一段话:\n'; mResultEdt.value += '月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。虽然是满月,天上却有一层淡淡的云,所以不能朗照;但我以为这恰是到了好处——酣眠固不可少,小睡也别有风味的。' break case AIUIConstant.EVENT_STOP_RECORD: console.log("已停止录音") break case AIUIConstant.EVENT_CMD_RETURN: if (AIUIConstant.CMD_VOICE_CLONE == arg1) { //数据同步的返回 let dtype = eventData?.getNumber(AIUIConstant.KEY_SYNC_DTYPE as string) let retCode = arg2; /** * retCode取值如下: * * | 错误码 | 说明 | * | :----- | :-------------------------------| * | 900400 | 参数非法 | * | 900401 | 应用鉴权异常 | * | 900402 | 授权已经用完,复刻资源数量已经达到上限 | * | 900403 | 没有授权,请先开通 | * | 900500 | 内部服务错误 | * | 900501 | 数据库异常 | * | 900601 | 声音复刻失败 | */ switch (dtype) { case AIUIConstant.VOICE_CLONE_REG: // 声音注册结果 if (retCode == AIUIConstant.SUCCESS) { mCurResId.value = ""; let resId = eventData?.getString('res_id'); if (resId != null) { mCurResId.value = resId } console.log("注册成功,res_id=" + mCurResId.value) } else { let message = ""; if (retCode != null) { let codeMessage = AIUIErrorCode[retCode]; if (codeMessage != null) { message = codeMessage as string } } console.log("注册失败,error=" + retCode + "," + message) } break case AIUIConstant.VOICE_CLONE_DEL: // 声音删除结果 if (retCode == AIUIConstant.SUCCESS) { mCurResId.value = ""; console.log("删除成功") } else { let message = ""; if (retCode != null) { message = AIUIErrorCode[retCode] as string } console.log("删除失败,error=" + retCode + "," + message) } break case AIUIConstant.VOICE_CLONE_RES_QUERY: // 已注册声音查询结果 if (retCode == AIUIConstant.SUCCESS) { let result = eventData?.getString("result") ?? ""; let resultJson = JSON.parseObject(result); let dataArray = resultJson?.getArray("data"); if (dataArray != null) { console.log("查询结果:" + JSON.stringify(dataArray)) } else { console.log("没有注册资源") } } break } } break } } catch (e : Error) { console.log("错误:" + e.message) } } }, fail: (_res) => { console.log("初始化失败") } }) - 参数说明
参数名 参数类型 是否必填 默认值 参数描述 params Object 是 无 参数配置 params.assetPath String 否 cfg/aiui_phone.cfg 配置文件名 success Function 否 无 执行成功的函数 fail Function 否 无 执行失败的函数 complete Function 否 无 执行完成的函数,不管成功还是失败都会执行
回调
示例
json{ "data": { "info": "connect to server success", "data": { "uid": "aabbcc-aabbcc-aabbcc" }, "eventType": 13, "arg1": 0, "type": "onEvent", "arg2": 0 }, "message": "", "code": 0 }回调说明:
参数名 参数类型 参数描述 message String 消息提示 data Object 数据对象 data.type String 类型,具体类型如下: onSuccess:接口调用成功onEvent:事件onRecordResult:录音结果data.path String 录音文件路径 data.eventType Integer 事件类型,具体事件类型可参考事件类型配置 data.data String 额外数据,一般为JSON数据 data.arg1 Integer 扩展参数1 data.arg2 Integer 扩展参数2 data.info String 描述信息 code Integer 返回类型,0.成功,其他:失败 注意
接口回调说明请参考SDK回调解析说明
