PulseAudio
1.1、PulseAudio简介
是什么 ?:a proxy for your sound applications.
开发语言:C
官方主页:https://www.freedesktop.org/wiki/Software/PulseAudio
源码仓库:https://gitlab.freedesktop.org/pulseaudio/pulseaudio
1.2、通过包管理器安装PulseAudio
操作系统包管理器安装命令
WindowsChocolateychoco install -y pulseaudio
macOSHomeBrewbrew install pulseaudio
GNU/LinuxHomeBrewbrew install pulseaudio
aptsudo apt-get install -y pulseaudio
CentOSyumsudo yum install -y pulseaudio
dnfsudo dnf install -y pulseaudio
openSUSEzyppersudo zypper install -y pulseaudio
Alpine Linuxapksudo apk add pulseaudio

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm pulseaudio
Gentoo LinuxPortagesudo emerge pulseaudio
1.3、通过编译源码安装PulseAudio 

step1、安装依赖

所有时Terminal + Shell + GNU CoreUtils
下载时cURL
解压时tar + xz
编译时mesonninjagcc / GCC | Clang / LLVM
运行时glibc ( libc.solibm.solibpthread.sold-linux-x86-64.so )

step2、使用curl命令下载PulseAudio源码包 (

curl -LO https://freedesktop.org/software/pulseaudio/releases/pulseaudio-13.0.tar.xz

step3、使用tar解压PulseAudio源码包

tar vxf pulseaudio-13.0.tar.xz

step4、进入pulseaudio-13.0目录

cd pulseaudio-13.0

step5、查看pulseaudio-13.0目录的内容

step6、使用meson配置编译参数

meson-D参数可以设置的参数都在根目录下的meson_options.txt文件中。

变量类型默认值说明
testsboolean是否编译测试代码,依赖Check
gcovbooleanfalse是否做单元测试用例的覆盖率统计, 依赖gcov
manboolean是否生成man-page
system_userstringpulse设置运行PulseAudio服务的系统用户
system_groupstringpulse设置运行PulseAudio服务的系统组
access_groupstringpulse-access指定哪个组可以访问PulseAudio服务
databasecombotdb
可选:gdbmtdbsimple
指定使用哪个数据库存储数据
alsafeatureauto是否使用alsa-lib
asyncnsfeatureauto是否使用alsa-lib
glibfeatureauto是否使用GLib
gsettingsfeatureauto是否使用gsettings
gtkfeatureauto是否使用GTK+3,否则使用GTK+2
x11featureauto是否使用libX11
systemdfeatureauto是否使用systemd
bluez5booleantrue是否使用BlueZ 5
dbusfeatureauto是否使用dbus

示例:

meson setup --prefix=$(pwd)/output --buildtype=release --backend=ninja -Dtests=false build

step7、使用ninja编译、安装

ninja -C build && ninja -C build install
1.4、PulseAudio中包含的命令
1.5、PulseAudio中包含的头文件
1.6、PulseAudio中包含的库文件
  • libpulse.so
  • libpulse-simple.so
  • libpulse-mainloop-glib.so