# Linux SDK
::: error 说明 IVS SDK 已停止迭代,新设备若需要接入,请使用EVS API进行接入。 :::
介绍
iFLYOS 提供了 Linux SDK 用于快速接入,封装了 IVS API 的交互实现,同时提供树莓派参考实现 (opens new window)。厂商既可以直接使用 Linux SDK,也可以在它的基础上做二次开发。
# 获取SDK方式
请联系技术支持:刘立明 158-5696-1929
# 需提供文件
c/c++编译链,编译器需支持c++11以上。
包含各种依赖库和头文件的sysroot(什么是sysroot (opens new window))
提供一个录音可执行程序,程序名固定为
ivs-record
(程序启动后,通过标准输出,持续输出单路16bit的pcm
)。该程序是为了方便我们集成时,可以直接使用录音功能(各个平台的录音方式不一样)开发板或开发样机的网络配置说明文档。
# 需提供硬件
- 开发板或开发样机
# 要求
# 硬件要求
- 单核CPU主频不小于1GHz
- Flash空间不小于128M
- 内存空间不小于64M
- 支持浮点运算
# 软件要求
类型 | 最低版本要求 |
---|---|
libcurl.so | 7.50.2 |
nghttp2 | 1.0 |
libssl | 1.0.2 |
libcrypto.so | 1.8.4 |
libopus | 1.2.1 |
libportaudio.so | v190600_20161030 |
libsqlite3.so | 3.19.3 |
libgstreamer-1.0.so | 1.8.3 |
# IVS-SDK 依赖库
IVS-SDK
依赖的库(包括头文件)有:
curl
sqlite3
libcrypto
opus
portaudio
(播放部分提示音,后期可自行替换)gstreamer-1.0
、gstreamer-app-1.0
(默认播放器,后期可自行替换)
注意
所有依赖需要包含其间接依赖。比如,curl
必须支持http2,一般都包含间接对nghttp2
和ssl
的依赖,则需要包含对应的依赖。
# 压缩包文件目录结构(参考)
注意
以下并不是完整的库文件和头文件列表,只是表明应该以此目录结构组织。最终提供的压缩包中应该包含curl(ssl+nghttp2)、alsa、opus、portaudio、sqlite3、libcrypto的所有库包括间接依赖库和头文件。
- ivs-record # 用于录音的可执行程序
- compiler # 顶层编译器目录
- bin
- arm-linux-gnueabihf-gcc # c编译器
- arm-linux-gnueabihf-g++ # c++编译器
- 其他 # 比如ar as ld等
- lib # 一般里面有c、c++标准库
- include # 一般包含标准头文件
- 其他
- sysroot # 顶层sysroot
- lib # 系统库
- usr
- lib # 第三方库
- libcurl.so
- libnghttp2.so
- libssl.so
- libz.so
- libcrypto.so
- libasound.so
- libnghttp2.so
- libopus.so
- libportaudio.so
- libsqlite3.so
- libgstreamer-1.0.so
- libgstapp-1.0.so
- 其他库
- include
- curl
- curl.h
- 其他curl头文件
- openssl
- ssl.h
- 其他ssl头文件
- alsa
- asoundlib.h
- 其他alsa头文件
- opus
- opus.h
- 其他opus头文件
- portaudio.h #portaudio头文件
- sqlite3.h #sqlite3头文件
- gstreamer-1.0 #gstramer的头文件
- 其他头文件
- curl
- lib # 第三方库
- 其他sysroot文件
# 常见问题
问:如果不使用默认的PortAudio库采集音频,使用其他方式采集音频,该如何实现?
答:参照PortAudioMicrophoneWrapper
的实现,在采集到音频数据时,通过调用 IVS SDK的ivsCommon::ivs::AudioInputStream::Writer::write
函数,向 iFLYOS 传送音频数据。
问:如何使用点触式唤醒方式。
答:参照 SampleApp 中的 UserInputManager
的Tap操作,最终调用capabilityAgents::aip::AudioInputProcessor::recognize
开始交互。
问:账号登录失败,日志中出现Peer certificate cannot be authenticated with given CA certificates错误信息,该如何解决?
答:Linux IVS SDK 通过 HTTPS 访问 iFLYOS 服务,并需要对应的证书信息,默认证书信息在/etc/ssl/certs/
目录下,用户也可以通过在iflyosClientSDKConfig.json
中修改libcurlUtils.CURLOPT_CAPATH
配置指定证书目录,另外设备也需要有同步最新时间的能力,否则证书验证也会失败。
问:闹钟功能失效?
答:请确认设备是否已使用 iFLYOS 账号登录,在关联APP配置后才能使用。
问:Sample Application调用哪个接口进入配网模式?
答:目前不支持配网,设备请自己完成配网后启动sdk。
← Android SDK iOS SDK →