OpenHarmony南向之Audio
音频架构
Audio驱动框架基于HDF驱动框架实现,包含内核态(KHDF),和用户态(UHDF), 对北向提供音频HDI接口
音频框架图
驱动架构主要由以下几部分组成。
HDI adapter:实现Audio HAL层驱动(HDI接口适配),给Audio服务(frameworks)提供所需的音频硬件驱动能力接口。包含 Audio Manager、Audio Adapter、Audio Control、Audio Capture、Audio Render等接口对象。
Audio Interface Lib:向下配合内核中的Audio Driver Model使用,实现音频硬件的控制、录音数据的读取、播放数据的写入,向上和上层的Audio HDI Adapter层进行对接。
ADM(Audio Driver Model):音频驱动框架模型,向上服务于多媒体音频子系统,向下统一接口适配各自的驱动代码。
主要代码目录
drivers/hdf_core/framework/model/audio及 device/board/xxx/yyy/audio_drivers等: ADM相关驱动,KHDF部分
drivers/peripheral/audio: audio HAL 实现,UHDF部分
foundation/multimedia/audio_framework: audio framework 实现
调用流程
Audio Service
目录:foundation/multimedia/audio_framework/services/
client:
通过 Remote()->SendRequest,和服务端进行通信(IPC),binder
server:
server端向上通过IPC与client交互,向下与HAL交互
使用PulseAudio进行音频流管理
foundation/multimedia/audio_framework/services/audio_service/client/src/audio_service_client.cpp
HAL
HAL简单架构
作者: Shell
链接: https://notes.z-dd.online/2023/11/02/OpenHarmony%E5%8D%97%E5%90%91%E4%B9%8BAudio/
来源: DD'Notes
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。