音频 Alsa、Framework及Android

本文深入探讨了Linux音频系统,重点介绍了Alsa架构,包括其基本特征、驱动包和用户空间接口。Alsa作为先进Linux声音架构,相比OSS提供了更高效和友好的编程接口。此外,文章还讨论了Android音频系统的层次结构,从App层到Kernel层,展示了Alsa在Android系统中的作用和集成方式。
摘要由CSDN通过智能技术生成

目录

1 Alsa、Framework及Android

1.1 ALSA架构简介图1

1.2 ALSA架构简介图 2

1.3 ALSA架构简介图 3

1.4 ALSA架构简介图 4

1.5 ALSA架构简介图 5

1.6 ALSA架构简介图 6

1.8 音频代码


1 Alsa、Framework及Android

目前,linux系统常用的音频驱动有两种形式:alsa和oss。Alsa:现在是linux下音频驱动的主要形式,与简单的oss兼容。oss:过去的形式音频设备接口包括PCM、IIS和AC97等,分别使用于不同的应用场合。针对音频设备,linux内核中包含了3类音频设备驱动框架,OSSALSAASoC,OSS包含dsp和mixer字符设备接口,在用户空间的编程中,完全使用文件的操作;ALSA以card和组件(PCM 、mixer等)为主线,在用户空间的编程中不使用文件接口而使用alsa lib;ASoC则是ALSA在SoC方面的演变,他建立在ALSA之上,将ALSA驱动中的CPU相关的代码和Codec相关的代码进行了分离。

在音频设备驱动中,几乎必须使用DMA,而DMA的缓冲区会被分割成一个一个的段,每次DMA操作其中的一段,OSS驱动的阻塞读写具有流程控制能力,在用户空间不需要进行流量方面的定时工作,但是他需要及时的写(播放)和读(录音),以免出现缓冲区的underflow或overflow。ALSA和ASoC的流控由ALSA的核心层处理,底层驱动仅以trigger()、pointer()等方法进行配合。

在声卡的驱动中一种是OSS:open sound system(开放声音系统),一种是ALSA: Advanced Linux Sound Architecture(先进Linux声音架构)。OSS是一个商业声卡驱动程序,需要花钱购买。一般我们现在使用的是ALSA的声音架构,ALSA包括对声卡的支持和驱动。嵌入式微控制器/DSP中集成了PCM(脉冲编码调制接口)、IIS或者AC97音频接口。通过这些接口外部的音频解码器可以实现声音的AD和DA转换。

ALSA具有更加友好的编程接口,并且完全兼容与OSS,对应用程序员来讲无疑是一个更好的选择。ALSA系统包括驱动包alsa-drvier开发包alsa-libs开发包插件alsa-libplugins设置管理工具包alsa-utils其他声音相关处理小程序包alsa-tools特殊音频固件支持包alsa-firmwareOSS接口模拟层工具alsa-oss共7个子项目,其中只有驱动包是必须的。ALSA的基本特征如下:

1、对所有音频接口的高效支持,从普通用户的声卡到专业级别多路音频设备;

2、支持多种盛开设备、声卡驱动完全模块化设计;

3、支持SMP 和多线程。

4、支持应用开发库(alsa-lib)以简化应用程序开发。为程序设计提供了简单、方便,并且拥有有高级的效果和功能;

5、支持旧版本的OSS API 结口,能为大多数的OSS应用程序提供兼容;OSS是一个商业性的驱动,OSS有一个简装本的代码已经移入内核和ALSA,其中alsa-o

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值