ALSA是内核级混音器,它直接管理您的声卡。ALSA本身一次只能处理一个应用程序。当然,有解决这个问题的“ dmix ”。(这是一个ALSA模块。)

PulseAudio是用户领域之上的软件混合器(就像您运行应用程序一样)。在运行时,它使用Alsa(无dmix),并管理各种混合,设备,网络设备以及所有内容。

在2014年,您仍然只能运行ALSA。但是,除非您自己编译应用程序并在各处启用ALSA支持-或使用基于源的发行版(如Gentoo),否则可能会遇到混合问题。发行版中预编译的应用程序通常仅在支持Pulseaudio而非纯ALSA的情况下构建。例如,Ubuntu更喜欢PulseAudio。默认情况下,它带有PulseAudio,因此每个应用程序都被编译为仅使用PulseAudio。

PulseAudio确实有其优势。人们说这对处理网络音频非常有用,它解决了纯ALSA下发生的多通道音频流的一些问题。据认为,为PA开发应用程序也更容易。在最终用户方面,很容易选择新设备,通过应用程序控制音量等。

但是,在默认配置中,它向混合中添加了不小的延迟。对于某些要求低延迟的任务,例如某些游戏和软件,这是一个很大的缺点。

OSS是这两种方法的替代方案,但未获得GPL的许可,这使得发行版不太可能被大量采用。

插图:

典型的PulseAudio驱动的声音系统,例如Ubuntu:

内核:ALSA->用户名:PulseAudio-> app1,app2,app3

在典型的Linux系统中,PulseAudio混合来自所有不同应用程序的音频,并将它们向上馈送到ALSA。

ALSA:

内核:ALSA-> dmix->用户名:app1,app2,app3

仅使用纯ALSA,您需要dmix才能混合多个应用程序。没有它,ALSA一次只能播放一个应用程序的音频流。

OSS:

内核:OSS->

用户空间:app1,app2,app3 使用OSS,用户空间应用程序直接与内核中的OSS通信,后者将流本身混合在一起。

综上所述,在当今的典型系统中,ALSA直接与您的声卡对话,而Pulseaudio与您的应用程序和程序对话,并将其输入ALSA。

linux pulseaudio模块关系,ALSA和PulseAudio有何关系?相关推荐

  1. Linux音频软件:Alsa、OSS和Pulseaudio、ESD、

    Linux 音频系统简析 https://blog.csdn.net/meizum10/article/details/17437959 PulseAudio,ESD和ALSA,OSS的关系 http ...

  2. 怎么安装aptdaemon模块_安装Pulseaudio模块在Ubuntu中开启蓝牙APTX/LDAC支持

    安装pulseaudio-bluetooth模块就能在Ubuntu 18.10/Ubuntu 18.04系统中实现蓝牙APTX/LDAC的支持,因为该模块整合了对于LDAC和APTX的支持,把它编译安 ...

  3. Ubunt下使用Alsa以及Alsa和PulseAudio

    Ubunt下使用Alsa以及Alsa和PulseAudio 安装 可能出现的问题 安装 直接命令,安装alsa sudo apt-get install alsa* 接着测试录音 sudo areco ...

  4. 【Linux CPUFreq模块】

    Linux CPUFreq模块 CPUFreq 简介 模块架构 代码 CPUFreq 核心数据结构 CPUFreq governor核心数据结构 cpufreq notifiers CPUFreq C ...

  5. linux ipv6模块,有关Linux ipv6模块加载失败的问题

    有关Linux ipv6模块加载失败的问题 同事一个SUSE11sp3环境配置ipv6地址失败,提示不支持IPv6,请求帮助,第一反应是应该ipv6相关内核模块没有加载. 主要检查内容: ipv6地址 ...

  6. Linux 编程中的API函数和系统调用的关系【转】

    转自:http://blog.chinaunix.net/uid-25968088-id-3426027.html 原文地址:Linux 编程中的API函数和系统调用的关系 作者:up哥小号 API: ...

  7. linux perl模块检测,Linux有问必答:如何用Perl检测Linux的发行版本

    提问:我需要写一个Perl程序,它会包含Linux发行版相关的代码.为此,Perl程序需要能够自动检测运行中的Linux的发行版(如Ubuntu.CentOS.Debian.Fedora等等),以及它 ...

  8. puppet连载八:linux优化模块

    linux优化模块 在服务端先建立文件limits.con vi /puppet/soft/limits.conf soft nofile 102400 hard nofile 102400 soft ...

  9. linux下的挂载点和分区是什么关系(详解挂载点)

    百度定义: 挂载点实际上就是linux中的磁盘文件系统的入口目录,类似于windows中的用来访问不同分区的C:.D:.E:等盘符.其实winxp也支持将一个磁盘分区挂在一个文件夹下面,只是我们C:. ...

  10. Linux 音频驱动(五) ALSA音频驱动之PCM逻辑设备

    目录 1. 前言 2. PCM逻辑设备 2.1. 创建 PCM逻辑设备: 2.2. PCM逻辑设备文件操作函数集:snd_pcm_f_ops[] 2.3. Open PCM逻辑设备 2.4. Writ ...

最新文章

  1. SAP PP 启用了HU管理下的工单入库
  2. centos7下安装intel Media Server Studio记录
  3. UVA10305 Ordering Tasks
  4. 【读书笔记】练习的心态
  5. 解决“计划任务不存在的问题”方法
  6. Jquery鼠标点击出现文字
  7. Spring AMQP ActiveMQ教程
  8. Android四级缓存,RecyclerView的四级缓存-初探
  9. go语言和python的区别_golang和python有什么区别?
  10. 拓展深度学习一种变相的马尔可夫链
  11. 网络工程师HCIE-RS-路由回馈问题(通俗易懂!)
  12. 智能优化算法:纵横交叉算法-附代码
  13. Atitit Atitit 零食erp数据管理---世界著名零食系列数据.docx世界著名零食
  14. PCB制图 | Altium Designer 20下载与安装
  15. spark 车流量项目实战
  16. Linux下的围棋软件,在Linux下和电脑下围棋
  17. java对接银联商务扫码支付(银联商务扫码支付文档)
  18. Ubuntu 20.04 LTS 修改IP地址
  19. 2017年CSTQB/ISTQB认证考试时间表
  20. 天龙八部荣耀版体验服服务器未响应,《天龙八部荣耀版》体验服评测:用竖版画面重新诠释天龙江湖...

热门文章

  1. 行业承压虎牙营收持续稳健,电竞浪潮中把握长期价值
  2. 便捷开票二维码应用规范中的那些坑
  3. cfree5文件标签混乱处理。
  4. 电感滤波电路的工作原理
  5. 数据分析/运营——用户分层模型RFM
  6. python二手房课程设计_基于python爬取链家二手房信息代码示例
  7. 提取文件原生ico图标
  8. 设计模式之Bridge模式(桥接模式)
  9. win10官方iso下载
  10. TensorFlow Estimator学习笔记(二)Estimator自定义模型-使用卷积神经网络解决 MNIST 问题