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>