我在Ubuntu 16.04 LTS
解决此问题的一种方法是转到/tmp
您的主目录并使用chown
位于您的用户名下的 pulsaudio 临时文件夹。但显然,这些文件夹不应该被更改所有者,因为它是由 system/root 创建的。
有人知道这个问题的正确解决方案或更好的建议吗?
多谢!
更新:
运行后,alsamixer -c 1
我的卡显示为 HDA Intel,芯片显示为 Realtek ALC1150,两者都正确;我的主控已打开,音量为 73。耳机已静音。S/PDIF 已静音。
结果为lspci -nnk | grep -A2 Audio
:
00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)
Subsystem: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:2010]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
00:1b.0 Audio device [0403]: Intel Corporation 9 Series Chipset Family HD Audio Controller [8086:8ca0]
Subsystem: Gigabyte Technology Co., Ltd 9 Series Chipset Family HD Audio Controller [1458:a0b2]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:0fba] (rev a1)
Subsystem: Gigabyte Technology Co., Ltd Device [1458:368e]
Kernel driver in use: snd_hda_intel
结果为aplay -l
:
**** List of PLAYBACK Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: ALC1150 Analog [ALC1150 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 1: ALC1150 Digital [ALC1150 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
结果为pactl list short sinks
:
0 auto_null module-null-sink.c s16le 2ch 44100Hz RUNNING
答案1
如果您无法解决它,这是一个临时解决方案。
通过编辑禁用 pulseaudio /etc/pulse/client.conf
(仅仅杀死它是不够的因为它会不断重新启动。)
取消注释(#
从前面删除)并编辑
autospawn = no
现在您可以终止 pulseaudio。
$ pulseaudio --kill
就是这样。
通过运行以下命令仔细检查它是否没有自动生成:
$ ps cax | grep pulseaudio
如果它仍在运行,那么
$ systemctl --user stop pulseaudio.socket && systemctl --user stop pulseaudio.service
现在您的模拟音频应该开始工作了。
为了能够改变音量,请将音量键(或您选择的任何 kbd 快捷键)重新分配给:
amixer set Master 5%+
amixer set Master 5%-
任何时候您需要重新启用 pulseaudio 将音频重定向到其他地方(例如使用蓝牙耳机时),请这样做。
$ pulseaudio --start
然后重新启动您正在使用的任何媒体应用程序。现在主板上的音频将停止,蓝牙将开始播放(使用 pavucontrol 检查)。
创建像“pas”和“pak”这样的别名或 kbd 快捷方式来快速启动和停止脉冲。
答案2
最近,我遇到了 Xonar 声卡问题,这是由我的 Radeon GPU 中集成的 HDMI 声卡引起的。
对于我来说,将英特尔和 HDMI 模块列入黑名单,阻止它们被 ALSA 加载,解决了这个问题。
为此,只需在文件开头添加以下两行/etc/modprobe.d/alsa-base.conf
:
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
然后重新启动 PC 并查看是否有帮助。
答案3
您的测试表明您的硬件和驱动程序模块工作正常,音频已准备就绪。但似乎在 pulseaudio 声称拥有模拟卡之前,其他东西已经完全控制了模拟卡。
检查使用:
sudo fuser -v /dev/snd/*
sudo fuser -v /dev/dsp
现在卸载它,重新启动并检查。
如果您没有找到任何东西,那么常见的罪魁祸首就是“timidity”(我认为 kde-full 会安装它)。只需删除它的守护进程(无法删除 timidity 本身,因为它是依赖项)。
sudo aptitude purge timidity-daemon
现在重新启动并检查。
如果问题仍然没有解决,您将不得不尝试困难的方法,记住您安装的可能正在使用音频的内容,然后尝试卸载它并重新启动。
这种脉冲/alsa 问题虽然看起来很简单,但很难解决,除非我们花了很多时间排除故障并“理解”问题。所以请坚持下去或使用临时的黑客攻击,直到你有时间。