开放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(IUiEventCallback 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

  1. 申请UI事件

      H5_call_native('native_open_ui_event',{"appid":"xxx","token":"xxxxx"},function(res){})
    
  2. 注册ui事件监听

      native_call_H5('h5_send_ui_status',function(data,responseCallback){
          var uiStatus =   data.uiStatus;
          var volume = data.volume;
       })
    
  3. 关闭申请ui事件

         H5_call_native('native_close_ui_event',{"appid":"xxx","token":"xxxxx"},function(res){})
    

应用外Web

  1. 注册回调数据监听,创建listener对象

     function callback(data) {
         //对应数据格式
         var data = JSON.stringify(data);
     }
     var listener = new Xiri.Listener(callback);
    
  2. 开启轮询数据获取

     listener.getCmd("open_xiri");
    
  3. 申请能力

     listener.openFeatureFunc("{\"name\":\"native_open_ui_event\",\"params\":\"{\\\"appid\\\": \\\"xxx\\\",\\\"token\\\":\\\"11111\\\"}\"}");
    
  4. 收到回调数据结果

    回调数据data为Json格式

     var jsData = data.data;
     var name = jsData.name;
     var params = JSON.parse(jsData.params);
     //UI状态
     var uiStatus= params.uiStatus;
     //其他字段参照协议
    
  5. 关闭能力

     listener.openFeatureFunc("{\"name\":\"native_close_ui_event\",\"params\":\"{\\\"appid\\\": \\\"xxx\\\",\\\"token\\\": \\\"11111\\\"}\"}");
    

results matching ""

    No results matching ""