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
标签:11,std,string,C++,shared,Android,ptr,SDK
From: https://blog.csdn.net/sjw890821sjw/article/details/140617729