Android OpenSL ES 音频播放器

本文介绍了OpenSL ES的基本概念,它是移动设备上用于音频处理的标准库。在Android平台,通过创建Engine对象、设定DataSource和DataSink,以及控制播放流程,可以构建音频播放器。文章详细阐述了OpenSL ES的创建过程,包括Engine初始化、音频输出对象创建、播放器创建及资源释放等步骤,最后预告将结合FFmpeg进行音频文件播放。
摘要由CSDN通过智能技术生成

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音视频流媒体高级开发

【文章福利】:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值