0
点赞
收藏
分享

微信扫一扫

Linux——多路复用之poll

1kesou 2024-07-25 阅读 28

1. 背景

基于Alexa的全链路智能语音SDK基于C++实现了跨平台特性,跑通了Android、Mac、Linux等设备,在兼容iOS时发现iOS未提供音频采集和播放的C++接口,所以需要改造SDK,允许SDK初始化时注入外部的采集器和播放器实现类,同时SDK中的Android播放器是基于ffmpeg解码 + opensl实现,但是考虑到包体积的问题,准备也基于这个接口在外部实现基于Android硬件解码的播放器。

2. 实现思路

在SDK内部定义了ExternalMediaPlayerInterface和ExternalMicrophoneInterface两个接口,初始化SDK时传入这两个对象:

int create_and_run_home_speech_core_engine(std::string& configFiles, \
                                           std::string& configJsonData, \
                                           std::shared_ptr<HomeSpeech::engine_result_t> engineResult, \
                                           const std::string pathToKWDInputFolder = "",     \
                                           const std::string& logLevel = "",
										   std::shared_ptr<HomeSpeech::ExternalMicrophoneInterfa
举报

相关推荐

0 条评论