玩瞳文档中心


绘本sdk上层接口

<h3>type.h头文件</h3> <p>``` c++ /<em>SDK接口返回的错误码和出错回调的错误码</em>/ typedef enum { //下面的错误码是SDK函数接口函数的返回值 E_VTSTORYBK_OK, //SUCCESS E_VTSTORYBK_FAILED = -1, //FAIL</p> <pre><code>E_VTSTORYBK_ALREADY_STARTED = -1000, //绘本已经启动过,比如start多次会得到此错误返回 E_VTSTORYBK_NOT_STARTED = -1001, //绘本还未启动 ,比如还未start就stop会得到此错误返回值 E_VTSTORYBK_PARAMS_ERROR = -1002, //函数调用参数非法错误 //下面的错误码由SDK错误回调通知外部,回调函数不能做阻塞耗时操作,获取到错误码应快速退出。 E_VTSTORYBK_LOGIN_FAILED = -1300, //绘本登录失败 E_VTSTORYBK_NETWORK_NOT_CONNECTED = -1301, //网络未连接 E_VTSTORYBK_LOW_MEMORY = -1302, //无内存,malloc 失败之类的 E_VTSTORYBK_SERVER_RESOLVE_HOST_FAILED = -1303, //解析服务器域名失败 E_VTSTORYBK_SERVER_CONNECT_HOST_FAILED = -1304, //连接服务器失败 E_VTSTORYBK_SERVER_TIMEOUT = -1305, //连接服务器超时 E_VTSTORYBK_SERVER_ABNORMAL = -1306, //服务器异常无法访问 E_VTSTORYBK_SERVER_RESPONSE_ERROR = -1307, //服务器返回错误码 E_VTSTORYBK_SERVER_RESPONSE_TIMEOUT = -1308, //识别超时太久 E_VTSTORYBK_DISK_SPACE_NOT_ENOUGH = -1309, //磁盘空间不足 E_VTSTORYBK_RECOGNIZE_RESPONSE_WRONG_FAILED = -1310, //recongnize response wrong failed,识别返回信息不完整 //服务器识别错误码 E_VTSTORYBK_SERVER_RESPONSE_ERROR_10007 = -1311, //10007 E_VTSTORYBK_SERVER_RESPONSE_ERROR_10000 = -1312, //10000 E_VTSTORYBK_SERVER_RESPONSE_ERROR_10014 = -1313, //10014 } E_VTSTORYBK_ERRORCODE; /*提示音设置相关int setGlobalSettings(E_VT_PARAMS_OP_TYPE type, int value)*/ typedef enum VT_PARAMS_OP_TYPE { VT_SET_PARAMS_NULL, VT_SET_PARAMS_NET_NOT_CONNECT_TIPINTERVAL, //断网,网络未连接 提示音间隔,单位都是秒 VT_SET_PARAMS_LOGIN_FAIL_TIPINTERVAL, //登陆licence 校验失败提示音间隔 VT_SET_PARAMS_DOWNLOAD_TIPINTERVAL, //首次下载相关提示音间隔 VT_SET_PARAMS_DECOMPRESS_TIPINTERVAL, //首次下载相关提示音间隔 VT_SET_PARAMS_PLACE_COVERPAGE_TIPINTERVAL, //提示放封面页 提示音间隔 VT_SET_PARAMS_PLACE_COVERPAGE_TIPCOUNTS, //提示放封面页 需要提示的次数 VT_SET_PARAMS_PLACE_PAGE_TIPINTERVAL, //提示翻页 提示音间隔 VT_SET_PARAMS_PLACE_PAGE_TIPCOUNTS, //提示翻页 需要提示的次数 VT_SET_PARAMS_NET_POOL_TIPINTERVAL, //弱网提示音间隔 VT_SET_PARAMS_SERVER_REQUEST_TIMEOUT, //暂无使用 VT_SET_PARAMS_FINGER_LOC_PLAY_SELF_RESOURCE, //设置点读命中热区后是否播放顽瞳资源 1:回调的同时也播放顽瞳点读热区资源 0:仅回调不播放 VT_SET_PARAMS_RECONGNIZE_ONLY, //just only recongnize, do not play the audios VT_GET_PARAMS_MEDIA_IS_ONLINEPLAY = 256, //获取是否在线播放 VT_GET_PARAMS_NET_NOT_CONNECT_TIPINTERVAL, VT_GET_PARAMS_LOGIN_FAIL_TIPINTERVAL, VT_GET_PARAMS_DOWNLOAD_TIPINTERVAL, VT_GET_PARAMS_DECOMPRESS_TIPINTERVAL, VT_GET_PARAMS_PLACE_COVERPAGE_TIPINTERVAL, VT_GET_PARAMS_PLACE_COVERPAGE_TIPCOUNTS, VT_GET_PARAMS_PLACE_PAGE_TIPINTERVAL, VT_GET_PARAMS_PLACE_PAGE_TIPCOUNTS, VT_GET_PARAMS_NET_POOL_TIPINTERVAL, VT_GET_PARAMS_SERVER_REQUEST_TIMEOUT, VT_GET_PARAMS_FINGER_LOC_PLAY_SELF_RESOURCE, VT_GET_PARAMS_RECONGNIZE_ONLY, VT_PARAMS_MAX = 512, } E_VT_PARAMS_OP_TYPE; enum { VT_NATIVE_FILE_PLAY, //本地下载资源播放 VT_ONLINE_FILE_PLAY //在线播放 }; enum { VT_ORIGINAL_MEDIA_PLAY = 0, //云端MP3明文数据播放 VT_ENCRYPT_MEDIA_PLAY, //云端MP3密文数据播放 }; //出错回调函数 //回调函数都不能做阻塞和耗时操作,获取到数据缓存下来应快速退出。 typedef int (*vtStoryErrorCb)(int errorCode, void *userp); //手指坐标 typedef struct tag_vtFingerData_s { /*手指相对图像X坐标*/ int finger_img_x; /*手指相对图像Y坐标*/ int finger_img_y; /*手指相对书本X坐标*/ int finger_bk_x; /*手指相对书本Y坐标*/ int finger_bk_y; /*热区index*/ int hot_index; /*扩展数据*/ std::string extraData; /*热区名字*/ std::string positionName; } vtFingerData_t; //手指识别信息回调 typedef int (*vtFingerStateCb)(vtFingerData_t &amp;amp;data, void *userp); typedef struct tag_Point2f { float x; float y; } vtPoint2F; /*template&amp;lt;int VERSION&amp;gt; struct VTARGS{}; template&amp;lt;&amp;gt; struct VTARGS&amp;lt;0&amp;gt;{ float x; float y; };*/ namespace vtstorybk { #define VT_SUCCEED 0 #define VT_FAILED -1 #define VT_ERROR -1 } // namespace vtstorybk #endif //__VT_TYPES_H__</code></pre> <pre><code> ###上层接口 ``` c++ class VTStoryBook { //============对外开放接口============== //============error code define in types.h, return 0[E_VTSTORYBK_OK] on success other on fail======= public: static VTStoryBook *getInstance(); //创建绘本实例 static int Destory(); //销毁绘本实例 int start(); //开始绘本功能 int pause(int action = 0); //暂停绘本功能 int resume(int action = 0); //恢复绘本功能 int stop(); //结束绘本功能 int AudioStop(); //停止当前正在播放的音频 int registerCamera(VTCameraAbs *pCamera = NULL); //注册相机实例 int registerInternetListener(VTInternetListener *pInternet = NULL); //注册网络监测 int registerDownloadNotify(VTDownloadNotify *dlnotyfy = NULL); //注册下载通知实例 int registerMediaPlayerNotify(VTMediaPlayerNotify *player = NULL); //注册正文播放完成通知实例 2019-4-1 int registerRecognizeNotify(VTRecognizeNotify *recognotify = NULL); //注册识别状态通知实例 int registerVoiceMediaPlayer(VTMediaPlayerAbs *pMediaPlayer = NULL); //注册语音播放器实例 int registerBgMediaPlayer(VTMediaPlayerAbs *pMediaPlayer = NULL); //注册背景音播放器实例 int registerSysMediaPlayer(VTMediaPlayerAbs *pMediaPlayer = NULL); //注册系统公共音播放器实例 int registerEffectMediaPlayer(VTMediaPlayerAbs *pMediaPlayer = NULL); //注册背景音播放器实例 int registerResourceManager(VTResourceManagerAbs *pResourceManager = NULL); //注册资源管理器实例 int registerGetDeviceInfo(VTGetDeviceInfoAbs *pGetDeviceInfo = NULL); //注册获取设备信息,如果需要用自定义设备ID,需要定义实现这个。否则SDK默认使用WLAN 的物理地址作为设备ID int registerErrorCb(vtStoryErrorCb errorCb, void *userp); //注册错误码回调通知 int setLicensePath(std::string path = &amp;quot;&amp;quot;); //设置license.lcs路径,如/etc/license.lcs int setAudioPath(std::string path = &amp;quot;&amp;quot;); //设置音频播放路径,如/mnt/sdcard/huiben/audio/ int setDownloadPath(std::string path = &amp;quot;&amp;quot;); //设置下载缓存路径,如/mnt/sdcard/huiben/download/ int setSysAudioPath(std::string path = &amp;quot;&amp;quot;); //设置系统音路径,如/mnt/sdcard/huiben/sysaudios/ int setMachineType(std::string path = &amp;quot;&amp;quot;); //设置机器机型,该机型与算法相关,由玩瞳提供;相关参数包括:1、高度;2、角度;3、分辨率;4、摄像头FOV int getGlobalSettings(E_VT_PARAMS_OP_TYPE type, int *value); //设置参数 int setGlobalSettings(E_VT_PARAMS_OP_TYPE type, int value); //获取参数 std::string getOpenID(); //获取openid,用于家长端获取阅读记录 std::string getToken(); //获取token,用于请求玩瞳HTTP 接口,有时效性,SDK会自动更新,如再次缓存需注意 int setCAFilePath(std::string path = &amp;quot;&amp;quot;); //设置CA证书文件路径,用于HTTPS SSL认证 比如 /etc/cacert.pem, 需要编译为支持HTTPS版本 int registerFingerStateCb(vtFingerStateCb stateCb, int mode, void *userp); //注册Finger通知,mode 参数 1:回调的同时也播放顽瞳点读热区资源 0:仅回调不播放 /* * args: 协商好的数据类型,一般是vtPoint2F * elementCount: 数据元素个数, 一般是1 * elementSize: 数据类型的大小 (比如sizeof(vtPoint2F)) * 该接口不能在vtFingerStateCb 回调函数里调用,不然可能死循环 */ int pushFingerData2Alg(void *args, int elementCount, int elementSize); //外部传入点读笔的坐标,输出为点读笔相对书本的坐标(通过vtFingerStateCb回调) //注意:任何一个参数有变化都可能会影响识别率,所以参数变化时必须通知玩瞳公司 };</code></pre>

页面列表

ITEM_HTML