1、OpenSL ES 介绍
OpenSL ES (Open Sound Library for Embedded Systems) 是一个跨平台、无授权费用的音频处理库,它为移动多媒体设备的应用开发者提供了标准化、高性能、低响应的音频功能实现方法,统一的 API 使得通过 OpenSL ES 开发的音频处理程序能够很好的在多个平台上运行。
2、OpenSL 编程说明
OpenSL ES 对象类似于 Java 编程语言中的对象概念,OpenSL ES 中的对象类型为 SLObjectItf,如果需要使用对象中的具体方法,则需要通过 GetInterfaces 的方式得到具体的接口对象,从而使用具体的个性功能,Interface 对象类型需要在创建时指定为显示接口,否则会默认隐藏; 另外 OpenSL ES 中的对象在创建完成后,并不会立即初始化,创建仅仅是构建对象分配基础的内存空间,需要通过 Realize 来对此对象进行初始化。
3、Android 平台下 OpenSL ES 开发准备
CMakeList 引入基础库
target_link_libraries(
${PROJECT_NAME}
OpenSLES
)
基础库头文件
#include <SLES/OpenSLES.h>
#include <SLES/OpenSLES_Android.h>
4、OpenSL 播放流程概览
OpenSL 中的 Engine 是一个非常关键的对象: 1、通过 Engine EngineItf 创建出音频播放器、音频采集器等各种关键对象 2、通过 Engine SLEngineCapabilitiesItf 查询各项能力在相关平台上的兼容性
DataSource 与 DataSink: DataSource 音频播放器中的数据输入源,DataSink 音频播放器中的数据输出对象(一般为系统中的音频设备)
【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】: