IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux 声音系统 -> 正文阅读

[系统运维]Linux 声音系统

驱动级

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 等等。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 12:01:39  更:2021-07-25 12:01:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:38:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码