如何修复用户的默认声音设备

如何修复用户的默认声音设备

当我在 Debian 上使用我自己的帐户“播放”(使用 SoX).wav 文件时,它播放得很好:

jcomeau@aspire:~$ play ~petalumarentals/7077809525.1396808357.711.wav 

/home/petalumarentals/7077809525.1396808357.711.wav:

 File Size: 120k      Bit Rate: 128k
  Encoding: Signed PCM    
  Channels: 1 @ 16-bit   
Samplerate: 8000Hz       
Replaygain: off         
  Duration: 00:00:07.52  

In:100%  00:00:07.52 [00:00:00.00] Out:361k  [      |      ]        Clip:0
Done.

但是,当我尝试在登录到另一个帐户后在同一台计算机上播放它时sudo,它不会发出声音,并且完成后显示“Out:”的数字要小得多:

petalumarentals@aspire:~$ 播放 7077809525.1396808357.711.wav

7077809525.1396808357.711.wav:

 File Size: 120k      Bit Rate: 128k
  Encoding: Signed PCM    
  Channels: 1 @ 16-bit   
Samplerate: 8000Hz       
Replaygain: off         
  Duration: 00:00:07.52  

In:100%  00:00:07.52 [00:00:00.00] Out:60.2k [     -|-     ]        Clip:0    
Done.

查看两者的 strace 结果时得到了提示:

petalumarentals@aspire:~$ strace -eopen play 7077809525.1396808357.711.wav 2>&1 | grep /dev/
open("/dev/shm/pulse-shm-757337927", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 7
open("/dev/urandom", O_RDONLY|O_NOCTTY|O_LARGEFILE|O_CLOEXEC) = 6
open("/dev/shm/pulse-shm-3973466970", O_RDWR|O_CREAT|O_EXCL|O_NOFOLLOW|O_CLOEXEC, 0700) = 6
open("/dev/shm/pulse-shm-757337927", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 9
open("/dev/urandom", O_RDONLY|O_NOCTTY|O_LARGEFILE|O_CLOEXEC) = 8
open("/dev/shm/pulse-shm-3705645700", O_RDWR|O_CREAT|O_EXCL|O_NOFOLLOW|O_CLOEXEC, 0700) = 8

jcomeau@aspire:~$ strace -eopen play ~petalumarentals/7077809525.1396808357.711.wav 2>&1 | grep /dev/
[snipped]
open("/dev/snd/controlC0", O_RDONLY|O_CLOEXEC) = 4
open("/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 4
open("/dev/snd/pcmC0D0p", O_RDWR|O_APPEND|O_NONBLOCK|O_CLOEXEC) = 5
open("/dev/snd/controlC0", O_RDONLY|O_CLOEXEC) = 4
open("/dev/snd/timer", O_RDONLY|O_NONBLOCK|O_CLOEXEC) = 4
open("/dev/snd/controlC0", O_RDONLY|O_CLOEXEC) = 6
open("/dev/snd/controlC0", O_RDONLY|O_CLOEXEC) = 6
open("/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 6

另外,当我alsamixer作为新用户在没有参数的情况下运行时,PulseAudio会显示为“卡”,而当我从我的帐户运行它时,HDA Intel默认情况下会显示。

谷歌搜索各种相关关键字会带来很多关于卸载或重新安装 PulseAudio 或将其配置为 root 的建议,但大约一个小时后仍然没有找到一些简单的解决方案来为 Debian 中的每个用户设置默认声卡。我一定忽略了一些愚蠢的事情,但到目前为止,除了将audio组添加到新用户之外,我什么也没想到,这是我早期所做的。

答案1

根据我兄弟的建议,我将 $HOME/.pulse/ 和 $HOME/.pulse-cookie 从jcomeau复制到petalumarentalschown并将它们复制到petalumarentals,现在 SoXplayalsamixer现在在两个帐户下都可以正常工作。一定有更好的方法来设置它,但它按原样工作。

相关内容