驱动级

OSS 和ALSA

OSS(Open Sound System,开放声音系统),老系统中的音频框架

ALSA(Advanced Linux Sound Architecture,高级Linux声音体系),新系统中的音频框架,用于替代老的OSS。

两者结构都差不多,但ALSA有更多的优点,具体比较参考 https://blog.csdn.net/longwang155069/article/details/53256751

只需要理解底层驱动层是ALSA框架就行。下图是转载的网络上的ALSA结构示意图

ALSA工具集也带一些命令行工具用于对声卡的操作,例如aplay arecord amixer alsamixer 等等,用于测试声卡以及实现简单的播放录制。这些工具工作于alsa,可用于诊断驱动配置问题。

PulseAudio

pulseaudio,在alsa lib上又封装了一层,增加了很多pulseaudio自己定义的插件,这样大大扩展alsa lib的功能,同时混音方面也加强了

简单的来说就是增强了alsa lib的功能,下面的流程摘抄百度贴吧大神

https://tieba.baidu.com/p/3790145023?red_tag=3544148596

应用之前是app(aplay之类)-->alsa lib --->alsa driver--->发声音。
现在是app--->pulseaudio--->alsa lib--->alsa driver--->发声音。

或者为了兼容之前的老的软件,Pulseaudio还支持以alsalib做为自己的输入,输出的还可以用来做为输入,挺绕,但是挺好理解,兼容之前只支持alsa lib输出的程序。

为了兼容之前的app(只支持alsa lib的程序)
app--->alsa lib---> alsa lib的pulseaudio插件--->pulseaudio--->alsa lib--->alsa driver--->发声音。
上面这个图应用程序是alsa lib接口,不用改,但是声音又从pulseaudio过一次,享受了pulseaudio的功能。

更复杂一点是

pulseaudio分client和server, 所以把这个区分出来后,完整的图应该是:
app--->alsa lib---> alsa lib的pulseaudio插件--->pulseaudio client--->pulseaudio server--->alsa lib--->alsa driver--->发声音。

Phonon----->gstreamer

这些属于更上层,具体的可以参考这个连接https://blog.csdn.net/meizum10/article/details/17437959

gstreamer介于软件层和音频输入层之间,优先于pulseaudio。gstreamer与众不同之处在于他不只是个音频处理框架,通过安 装解码器,你还可以通过他来播放音频视频文件。

程序音频最长的调用方式可以列出如下:

APP-->Phonon----->gstreamer -->pulseaudio--->alsa lib--->alsa driver--->发声音。

由于搞开发的这帮人极度迷信代码复用以及软件分层思想,所以linux的音频系统就搞的有点复杂,然后软件开发的音频系统出了问题,先要搞清楚软件到底工作在哪一层。好在现在的linux发行版不管是对图形还是多媒体,支持都非常完美了。绝大多数情况下,音频系统自然就是可以正常使用的。

HDA AC97

PC上的音频标准,现在基本都是HDA了,不过不管是AC97还是HDA标准,带头大哥都是intel真是厉害啊。搜了一下这两者区别,感觉结构上没啥大区别,HDA是新标准,功能更强大了。下面是网上嫖的一张图

可以看到,主板上集成的是HDA的控制器,下面挂的HDA link上可以挂不通的codec(D/A和A/D).

所以其实在linux终端查看声卡,lspci 能看到的

就是上面这个图里面控制器,至于codec,并没列出来 ,codec可以用aplay -l 或者arecord -l 来查看

电脑声音有问题,可以用alsamixer进行查看或者调整看是否有声音,或者aplay arecord进行播放或者录音验证声卡驱动功能。

默认alsamixer 调整的声卡和chip都是Pulseaudio,可以按F6进行声卡选取

默认是Pulseaudio,选HDA intel PCH,将可以对物理声卡进行调整。

实际的问题,需要实际分析,alsa提供的工具日常用的最多就是alsamixer aplay arecord

Pulseaudio同样提供工具, 在debian系的系统可以用 dpkg -L pulseaudio-utils 命令来查看所带的工具,有录音parecord,播放 paplay ,或者通用的pacat 以及pactl 等等。

Linux 声音系统相关推荐

  1. linux正在等待声音系统响应,linux声音系统较好的解决方案alsa+esd

    基本思路:alsa是主流且能兼容oss,故用alsa驱动统一低层.esound是gnome默认的声音服务,很多程序都基于它,故用esd统一高层.能够方便的实现混音,就是多个音频播放能够协调工作:他的反 ...

  2. 转载:Linux音频驱动-OSS和ALSA声音系统简介及其比较

    Linux音频驱动-OSS和ALSA声音系统简介及其比较 概述 昨天想在Ubuntu上用一下HTK工具包来绘制语音信号的频谱图和提取MFCC的结果,但由于前段时间把Ubuntu升级到13.04,系统的 ...

  3. linux 声音控制 命令,linux 声音大小调整的命令

    alsamixer 输入上面的命令 回车即可看到图形界面,界面如下 ┌──────────────────────────── AlsaMixer v1.0.27.1 ──────────────── ...

  4. alsa和oss声音系统比较

    OSS(Open Sound System) OSS的含义为,Open Sound System,是unix平台上一个统一的音频接口.以前,每个Unix厂商都会提供一个自己专有的API,用来处理音频. ...

  5. ALSA (高级Linux声音架构)、ASOC基础知识

    目录 第一节:什么是ALSA和ASOC 第二节:ALSA框架 第三节:ALSA的使用 第四节:ASOC的硬件框架 第四节:ASOC的软件框架 第一节:什么是ALSA和ASOC ALSA是Advance ...

  6. 国产信创Linux桌面系统比较:软件包格式及软件管理、桌面环境及桌面应用

    信创产业中,操作系统开始整合,基本上集中在银河麒麟V10和UOS2,很多朋友问到各种国产信创Linux系统的区别和比较.因此结合前期写的几篇文章,对这个问题再进行了整理.以龙芯CPU为例,比较包括lo ...

  7. Linux声音解决方案与TTS引擎

    一.ALSA+Pulseaudio在嵌入式Linux中的声音解决方案 Linux音频系统比较复杂,各层间有很多交叉,可能是最无序的子系统,并且它有两套音频驱动框架: OSS (Open Sound S ...

  8. Linux声音设备编程实例

    由于这些文件不是普通的文件,所以我们不能用ANSI C(标准C)的fopen.fclose等来操作文件,而应该使用系统文件I/O处理函数(open.read.write.lseek和close)来处理 ...

  9. linux中断系统那些事之----中断处理过程【转】

    转自:http://blog.csdn.net/xiaojsj111/article/details/14129661 以外部中断irq为例来说明,当外部硬件产生中断时,linux的处理过程.首先先说 ...

最新文章

  1. leetcode 82. 删除排序链表中的重复元素 II
  2. 软件生成目录没有图框_图纸目录和编号
  3. 关于大小型项目如何最大限度提高WebAPi性能
  4. what to do to make a phone call at dorm?
  5. TCP系列42—拥塞控制—5、Linux中的慢启动和拥塞避免(二)
  6. 今天起,我们喝的百年牛奶要变了!
  7. ICCV NAS Workshop 最佳论文提名:通过层级掩码实现高效神经网络架构搜索
  8. 为什么preparedstatement能防止sql注入_使用Python防止SQL注入攻击的实现示例
  9. python字符串操作_Python 字符串操作 - 树懒学堂
  10. Java完全自学手册pdf,由浅入深,循序渐进(1)
  11. 安:[摩斯密码表]摩斯密码对照表
  12. unity打开excel表格_unity创建编辑读取EXCEL文件表格数据游戏插件工具Uni-Excel 1.0
  13. 弗雷歇距离 matlab,离散Fréchet(弗雷歇) 距离评价曲线相似度
  14. 拦截X64安卓模拟器封包拦截发送技术(不用代理/网卡/dll一切)
  15. H3C HCL模拟器配置vlan划分案例
  16. 凌晨四点洛杉矶-致奋斗的我
  17. 蓝桥杯:翻转旋转变换(矩阵旋转)
  18. 串行通信比并行通信的速度更高
  19. 为VMware vSphere创建Ubuntu 18.04 Terraform模板
  20. FPGA 串口波特率时钟的概念

热门文章

  1. 线程池核心线程数和最大线程数总结
  2. c++输出控制台彩色字体
  3. android webView淘宝口令跳转重定向的问题探索和解决
  4. SmartNest切割套料编程软件
  5. 使用MetaCycle进行生物节律基因分析
  6. 第10章 组合模式(Composite Pattern)
  7. STC8A8K增强型PWM使用
  8. WMI Provider Host可以关闭吗?
  9. qq号码交易源码 php,QQjiaoyiyuanma QQ号码交易站源码备份 ASP的 ,也是不错的 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
  10. 跨时钟域的数据同步,亚稳态,和相关电路设计方法