1 开发环境
本文档是向Linux、Android系统,添加ALink车机端SDK的快速入门说明。
2 SDK接口调用时序
SDK接口调用说明如下:
1. 调用init()方法初始化SDK。
2. 调用registerAVListener ()方法把IALinkClientAVListener注册到SDK,SDK在和车盒建立连接后使用init ()方法设置的音视频的参数开始录制音视频,在音视频数据更新时,通过onAVDataReceived()回传给应用程序。
3. 调用registerEventListener ()方法把IALinkClientEventListener注册到SDK,当事件发生时SDK会调用onEventReceived ()方法将事件通知应用程序。
4. 调用start()方法启动SDK。
5. 应用程序音视频通道建立连接或者断开连接的时候,应用程序必须调用postCommandMessage ()方法向SDK发送音视频通道状态数据。
6. 应用程序触发方控、旋钮、触屏事件的时候,应用程序必须调用postHMIEvent ()方法向SDK发送事件数据。
7. 应用程序接收到车机麦克风数据的时候,应用程序必须调用postMicStream ()方法向SDK发送麦克风数据。
8. 调用stop()方法停止SDK。
SDK接口调用时序图如下:
3. SDK接口使用说明
3.1 SDK初始化
设置ALinkClient配置信息,初始化SDK:
3.2 音视频监听
注册音视频Listener到SDK,当SDK音视频数据更新时,会对onAVDataReceived()进行回调,应用程序便可以得到音视频数据。
将IALinkClientAVListener作为基类,应用程序自定义子类,并实现对纯虚函数onAVDataReceived()的定义,将子类对象注册SDK中。
3.3 事件监听
注册事件Listener到SDK,当SDK有新的事件触发时,会对onEventReceived()进行回调,应用程序便可以取到最新的事件信息。
将IALinkClientEventListener作为基类,应用程序自定义子类,并实现对纯虚函数onEventReceived()的定义,将子类对象注册SDK中。
3.4 启动SDK
启动SDK,SDK开始工作。
3.5 音视频通道通知
当应用程序的视频通道建立时需要向SDK发送video-start的消息,SDK即可进行视频的更新动作。同时需要额外携带车机屏幕分辨率和最大帧率等信息,以便A-LinkClient端通知A-LinkServer端进行动态的适配;当应用程序的视频通道断开时需要向SDK发送video-stop的消息,SDK便可停止视频的更新动作。当应用程序的音频通道建立时需要向SDK发送audio-start的消息,SDK即可进行音频的更新动作;当应用程序的音频通道断开时需要向SDK发送audio-stop的消息,SDK便可停止音频的更新动作。
3.6 方控、触屏事件通知
当应用程序检测到方控事件时,需将按键以SDK可识别的key code的方式通知给SDK,以便SDK的识别与响应;当应用程序检测到触屏事件时,需将相应的坐标信息与按下抬起动作通知给SDK,以便SDK的识别与响应。
3.7 麦克风收音通知
当车机端按下相应按键要启动麦克风收音时,需将对应的方控事件发送给SDK;当车机端收音时需将收音原数据发送给SDK,以便SDK作对应的语音处理;当车机端按下相应按键要终止麦克风收音时,需将对应的方控事件发送给SDK。
3.8 获取SDK版本号
获取SDK的版本信息。
3.9 动态设置服务端音视频参数
提供动态设置服务端音视频参数的接口。
3.10 获取服务端音视频参数
获取服务端音视频参数
3.11 停止SDK
停止SDK,SDK注销所有工作。