欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android audio/linux alsa音频-框架

程序员文章站 2023-08-15 13:05:41
音频部分一直是linux/android开发的难点之一。 linux早期使用的音频是oss(open sound system),由于种种原因(大家可以google),目前广泛使用的是alsa(ad...

音频部分一直是linux/android开发的难点之一。

linux早期使用的音频是oss(open sound system),由于种种原因(大家可以google),目前广泛使用的是alsa(advanced linux sound architecture),alsa是一个开源项目。

android音频框架的结构图如下所示:

android audio/linux alsa音频-框架

(1)application: 音频系统的最上层,它由app程序调用系统的api类实现音乐播放器、游戏声音、音效、录音等,这些api类主要有mediaplayer,mediarecorder,audiotrack,audiorecord等。

(2)framework:实现api类和服务管理类mediaservice,audiosystem,audiomanager。这些类用java语音实现,代码放在frameworks/base/media/java/android/media下,在内部实现时很多是简单地调用了libraries的代码。

(3)libraries:包括c\c++实现的jni代码,重要的有audioflinger,audioplicyservice,audiomixer等。代码放在frameworks/av/media/libmedia。

(4)hal层:实现audio_hw_device和audio_policy_hal,实现与alsa的音频接口,实现音频路径的创建和连接。