---
title: Initialize
description: "初始化指令流客户端引擎。 指令流引擎 会初始化EmuGLRender组件、网络通信组件。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcps/boostcph/instrucstreamengine/kunpengcpsinstruction_17_0004.html
sourcePath: /source/zh/kunpengcps/boostcph/instrucstreamengine/kunpengcpsinstruction_17_0004.html
indexId: 3d65115778e88ee58630f83e55a6588eeca940d0342cdf9ca8b65e96075e032185
---
# Initialize

#### 函数功能

初始化指令流客户端引擎。 指令流引擎 会初始化EmuGLRender组件、网络通信组件。


#### 函数原型

uint32_t Initialize(OnVmiEngineEvent event)


#### 参数说明

| 字段名称 | 输入/输出 | 字段类型 | 字段描述 |
| --- | --- | --- | --- |
| event | 输入 | OnVmiEngineEvent | 指令流引擎事件回调函数指针。原型如下： using OnVmiEngineEvent = void (\*)(EngineEvent event); EngineEvent为指令流引擎事件，原型如下： typedef struct EngineEvent { int event = 0; int para1 = 0; int para2 = 0; int para3 = 0; int para4 = 0; char additionInfo[4096] = {0}; } EngineEvent; event代表引擎事件码，取值范围如下： enum VmiEngineEvent { VMI\_ENGINE\_EVENT\_SOCK\_DISCONN = \-2, // 连接断开 VMI\_ENGINE\_EVENT\_PKG\_BROKEN = \-3, // 数据包损坏 VMI\_ENGINE\_EVENT\_VERSION\_ERROR = \-4, // 服务端和客户端的版本不匹配 VMI\_ENGINE\_EVENT\_READY = \-5, // 引擎渲染第一帧画面成功 VMI\_ENGINE\_EVENT\_ORIENTATION\_CHANGED = \-6, // 服务端方向转屏事件 VMI\_ENGINE\_EVENT\_CACHE\_OVERFLOW = \-7, // 缓存溢出 VMI\_ENGINE\_EVENT\_BAD\_LATENCY = \-8, // 网络时延过大 VMI\_ENGINE\_EVENT\_NEW\_CONNECTION = \-9, // 收到新的网络连接 VMI\_ENGINE\_EVENT\_TRAFFIC\_ABNORMAL = \-10, // 网络流量异常 VMI\_ENGINE\_EVENT\_APP\_TRAFFIC\_ABNORMAL = \-11,// app发往Sipc的流量异常 VMI\_ENGINE\_EVENT\_GET\_VERSION\_TIMEOUT = \-12, // 获取版本号超时 VMI\_ENGINE\_EVENT\_VERSION\_MISMATCH = \-13, // 版本号校验失败 VMI\_ENGINE\_EVENT\_ENGINE\_MISMATCH = \-14, // 引擎匹配失败 }; 当event值为VMI\_ENGINE\_EVENT\_ORIENTATION\_CHANGED时，para1代表转屏方向，取值范围如下： 0，表示竖屏 1，表示顺时针90度横屏 2，表示顺时针180度竖屏 3，表示顺时针270度横屏 |


#### 返回值说明

数据类型：uint32_t

取值如下：

- VMI_SUCCESS：表示初始化成功。
- VMI_CLIENT_EXEC_ORDER_FAIL：表示引擎执行顺序非法。
- VMI_CLIENT_INITIALIZE_FAIL：表示指令流客户端引擎初始化失败。


#### 调用示例

```
void CallJavaOnVmiEngineEvent(EngineEvent event)
{
}
void Test()  
{ 
     uint32 initResult = Initialize(CallJavaOnVmiEngineEvent);  
     if (initResult != VMI_SUCCESS) {  
         // 初始化指令流引擎失败，显示错误信息，退出界面  
         Log.e(TAG, "InstructionEngine initialize failed, result:" + initResult);  
     } else {  
         // 成功  
     }
}
```
