Demo示例
<h3>集成Demo流程图</h3>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/60000ba866951fb2cd30fa0c78d852a1?showdoc=.jpg" alt="Demo运行逻辑" title="Demo运行逻辑" /></p>
<h3>一、Storybook实例化</h3>
<p>``` c++
VTStoryBook *storybk = VTStoryBook::getInstance();</p>
<pre><code>
### 二、实现接口类
在SDK中,每一个模块都设计了一个接口类,命名为VT\*.hpp。首先需要实现该类中的接口,这样才能让各模块实例化。
接口类定义了许多虚方法,需要开发人员自定义一个类来继承接口类,以实现各虚方法。
具体的接口类的定义及功能见各模块的文档。
### 三、注册模块
当各接口类均实现后,就相当于有了不同功能的模块。接下来要使用VTStoryBook类中的registerXXX()函数将它们注册到APP中。例如:
``` c++
MediaPlayer *pPlayer = new MediaPlayer();
Camera *pCamera = new Camera();
storybk->registerVoiceMediaPlayer(pPlayer);
storybk->registerCamera(pCamera);
/* 以下省略 */</code></pre>
<h3>四、Storybook开始运行</h3>
<p>调用start()方法。
``` c++
storybk->start();</p>
<pre><code>
### 五、样例程序
``` c++
int main(int argc, char const *argv[])
{
//一、Storybook实例化
VTStoryBook *storybk = VTStoryBook::getInstance();
//二、接口类在其他文件实现,这里将它们实例化
RecognizeNotify *pRecogNotify = new RecognizeNotify();
DownloadNotify *dlNotify = new DownloadNotify();
InternetListener *pInternet = new InternetListener();
GKCamera *pCamera = new GKCamera();
GKMediaPlayer *pVoicePlayer = new GKMediaPlayer();
GKMediaPlayer *pSystemPlayer = new GKMediaPlayer();
//三、注册模块
//注册下载通知
storybk->registerDownloadNotify(dlNotify);
//注册识别状态通知
storybk->registerRecognizeNotify(pRecogNotify);
//注册相机
storybk->registerCamera(pCamera);
//注册播放器
storybk->registerVoiceMediaPlayer(pVoicePlayer);
storybk->registerSysMediaPlayer(pSystemPlayer);
#if 1
//开启网络检测
pInternet->setListenerCallBack(storybk);
pInternet->start();
#endif
//四、Storybook开始运行
storybk->start();
while (1)
{
sleep(1);
}
//关绘本,结束运行
storybk->stop();
delete pVoicePlayer;
delete pSystemPlayer;
delete pCamera;
delete pInternet;
delete pRecogNotify;
return 0;
}
</code></pre>