开放UI 事件
功能说明:iFLYHOME OS进行语音交互过程中,将录音的状态(包括录音开始,录音过程中音量、录音结束等状态)以及识别的状态对外提供。主要用于集成方自行展示语音交互UI的场景。参考:产品白皮书
使用说明:集成方在申请开放该能力后,在需要使用时激活或者申请UI事件。在触发语音识别后,将UI事件状态回调给集成方。
安卓原生
通过如下方法获取能力接口
IUiEvent uiEvent = XiriOPManager.getInstance().getUiEventMgr();
主要此处返回值可能为Null, 原因: SDK未初始化
api如下:
public interface IUiEvent {
/**
* 关闭UI事件能力
*/
void invalid();
/**
* 开放UI事件能力
* @param listener 回调
*/
void active(booleaIUiEventCallback listener);
}
示例:
// 激活UI事件能力
IUiEvent uiEvent = XiriOPManager.getInstance().getUiEventMgr();
if (uiEvent != null) {
uiEvent.active(new IUiEventCallback() {
@Override
public void onRecordStart() {
showResult("onRecordStart");
}
@Override
public void onRecordEnd() {
showResult("onRecordEnd");
}
@Override
public void onRecognizeStart() {
showResult("onRecognizeStart");
}
@Override
public void onRecognizeEnd() {
showResult("onRecognizeEnd");
}
@Override
public void onVolume(int volume) {
showResult("onVolume " + volume);
}
});
}
// 关闭UI事件能力
IUiEvent uiEvent2 = XiriOPManager.getInstance().getUiEventMgr();
if (uiEvent2 != null) {
uiEvent2.invalid();
}
应用内嵌Web
申请UI事件
H5_call_native('native_open_ui_event',{"appid":"xxx","token":"xxxxx"},function(res){})
注册ui事件监听
native_call_H5('h5_send_ui_status',function(data,responseCallback){ var uiStatus = data.uiStatus; var volume = data.volume; })
关闭申请ui事件
H5_call_native('native_close_ui_event',{"appid":"xxx","token":"xxxxx"},function(res){})
应用外Web
注册回调数据监听,创建listener对象
function callback(data) { //对应数据格式 var data = JSON.stringify(data); } var listener = new Xiri.Listener(callback);
开启轮询数据获取
listener.getCmd("open_xiri");
申请能力
listener.openFeatureFunc("{\"name\":\"native_open_ui_event\",\"params\":\"{\\\"appid\\\": \\\"xxx\\\",\\\"token\\\":\\\"11111\\\"}\"}");
收到回调数据结果
回调数据data为Json格式
var jsData = data.data; var name = jsData.name; var params = JSON.parse(jsData.params); //UI状态 var uiStatus= params.uiStatus; //其他字段参照协议
关闭能力
listener.openFeatureFunc("{\"name\":\"native_close_ui_event\",\"params\":\"{\\\"appid\\\": \\\"xxx\\\",\\\"token\\\": \\\"11111\\\"}\"}");