C++11 智能指针之shared_ptr

news/2024/9/8 9:33:58

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/14933.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Redis底层数据结构-简单动态字符串SDS

简单动态字符串&#xff08;simple dynamic string&#xff0c;SDS&#xff09;。Redis没有直接使用C语言传统的字符串&#xff0c;而是自己构建了一种简单动态字符串(SDS)的抽象类型。C字符串只会作为字符串字面量&#xff08;string literal&#xff09;用在一些无须对字符串…

mesa LLVMpipe ORCJIT 上游化:一场历时两年的后端合并马拉松,幕后英雄竟是 TA!

内容来源&#xff1a;deepin&#xff08;深度&#xff09;社区 近日&#xff0c;mesa 开源图形驱动合并了 llvmpipe 的 ORCJIT 后端的 Merge Request (MR)&#xff0c;并实现了对 riscv64 架构的支持。 LLVMpipe 是什么&#xff1f; LLVMpipe 是 mesa 驱动中的一种软件渲染器…

短视频矩阵系统,一键智能成片

在信息爆炸的时代&#xff0c;短视频以其短平快的特点迅速崛起&#xff0c;成为人们获取信息、娱乐消遣的重要渠道。然而&#xff0c;如何在这个竞争激烈的领域中脱颖而出&#xff0c;制作出吸引眼球的爆款视频呢&#xff1f;今天&#xff0c;我们就来揭秘一款神奇的短视频矩阵…

灰色关联分析【系统分析+综合评价】

系统分析&#xff1a; 判断哪个因素影响最大 基本思想&#xff1a;根据序列曲线几何形状的相似程度来判断其练习是否紧密 绘制统计图并进行分析 确定子序列和母序列 对变量进行预处理&#xff08;去量纲、缩小变量范围&#xff09; 熟练使用excel与其公式和固定&#xff08…

熟悉set/map了解KV模型和pair结构

set基本介绍 set是key模型,本质是确定一个 元素在不在此容器中,也就是说 set中存储的是一个单一数据 1. set是按照一定次序存储元素的容器 2. 在set中&#xff0c;元素的value也标识它(value就是key&#xff0c;类型为T)&#xff0c; 并且每个value必须是唯一的。set中的元素不…

vue3前端架构---打包配置

最近看到几篇vue3配置项的文章&#xff0c;转载记录一下 Vue3.2 vue/cli-service 打包 chunk-vendors.js 文件过大导致页面加载缓慢解决方案-CSDN博客文章浏览阅读2k次&#xff0c;点赞8次&#xff0c;收藏9次。Vue3.2 vue/cli-service 打包 chunk-vendors.js 文件过大导致页…