所以,长话短说,当我在戴尔笔记本电脑上安装 Mint 12 时,我意识到我的 HDA-intel 声卡在脉冲音频方面存在问题。我卸载了pulseaudio并恢复了我的声音,但是删除pulseaudio也会删除gnome-shell顶部面板上那个漂亮的小混音器图标,并且弄乱了声音配置应用程序。
有没有其他解决方案可以删除pulseaudio?我也试过杀死它,但同样的事情发生了。
如果没有,是否有任何 gnome-shell 扩展会基于 alsa 而不是基于pulseaudio(来自 Gnome2 的旧混音器会很棒)创建类似的图标。
可以阅读更长的故事Mint 12 上 HDA-Intel 的声音问题
I am working on an audio stream between two virtual servers. For that, I have set up a dummy soundcard (as the vservers don't have a hw card) using modprobe snd-dummy.
That seems to work fine - I am able to tweak volume levels using alsamixer. Unfortunately, I am not able to record any playback. I used arecord -r 48000 -c 1 to see what's going on, and the output is quite creepy. It contains paths:
Aufnahme: WAVE …Run Code Online (Sandbox Code Playgroud) 我想使用 aplay 从我的 CentOS 6.5 Vagrant box 播放波形文件,当然我想听到声音。
这就是我所做的:
> aplay sine.wav
Playing WAVE 'sine.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
Run Code Online (Sandbox Code Playgroud)
似乎 aplay 实际上播放文件。但我听不到正弦音。
使用扬声器测试也会发生同样的情况。它似乎有效,但我什么也没听到。
> speaker-test
speaker-test 1.0.23
Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2048 to 16384
Period size range from 1024 to 1024
Using max buffer size 16384
Periods = 4
was set …Run Code Online (Sandbox Code Playgroud) 如何将进程(或一组知道父进程 ID 的进程)生成的音频重定向到 PulseAudio,然后重定向到特定的音频硬件(甚至到特定的通道)?
最小的 PulseAudio 配置应该是什么?
我有一个生成正弦曲线的 Python 脚本,例如,我只想将该声音重定向到我的低音炮(我有 5.1 音频系统)。我只想捕获该过程产生的每个声音。
我的目标是测试视频室应用程序,因此我将创建多个带有虚拟网络摄像头和麦克风的虚拟机。
网络摄像头与 配合良好v4l2loopback,但麦克风不行。
我正在尝试使用 ALSA。
ffmpeg -re -i cox.mp4 -map 0:0 -f v4l2 /dev/video0 -map 0:1 -f alsa hw:1
结果,Firefox 看到Dummy Video device并可以使用它。Firefox 也能看到Dummy analog stereo和Loopback analog stereo,但这些“麦克风”没有声音。
ffmpeg 命令或 ALSA 本身有问题,或者我只是做错了一切?
我有一个 USB 音频设备,配置为卡 0 的默认设备。
我有一个 3rd 方应用程序试图播放 wav 文件,但失败并显示以下内容:
Playing WAVE 'sound.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
aplay: set_params:1239: Channels count non available
Run Code Online (Sandbox Code Playgroud)
如果我尝试手动播放相同的 wav,我不会出错,但也没有声音:
aplay sound.wav
Playing WAVE 'sound.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
Run Code Online (Sandbox Code Playgroud)
如果我指定 device plughw:0,0,声音播放正确!
aplay -D plughw:0,0 sound.wav
Playing WAVE 'sound.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
Run Code Online (Sandbox Code Playgroud)
我尝试了各种尝试将配置~/.asoundrc设置plughw:0,0为默认值,但没有成功。
如何-D plughw:0,0将默认设置应用于所有声音播放?
我注意到这发生在我的 ArchLinux PC 和我的 ArchLinux MacBook 中。我需要通过短音调获取应用程序通知,我发现这不是通知应用程序的问题,而是系统本身的问题,并且它发生在两个截然不同的系统中。
当我播放一个简短的音频文件时,就像paplay /usr/share/sounds/freedesktop/stereo/message.oga我第一次播放时听不到一样。
如果我按顺序再次播放,我会听到它并且播放正确,我始终按顺序重复播放。
如果我等了大约 10 秒钟再播放,它就会静音(就像开始时一样):只有在热身时才会发出声音。
也会发生同样的情况aplay /usr/share/sounds/alsa/Front_Left.wav,但由于音调较长,因此问题仅发生在文件的开头。起初我只听到“t left”,漏掉了“fron”。之后,我完整而清晰地听到:“左前方”。如果我等了 10 秒,“t left”又一次。
如果我在媒体播放器的后台播放音乐文件,则不会发生此问题。它仅在计算机不播放任何声音时发生。
如何解决这个问题?(除了让 PC 在后台的守护进程中播放听不见的声音以使其始终处于预热状态)
仅使用 alsa 问题仍然存在的相关测试会话:
~ ??? sudo mv /usr/bin/pulseaudio /usr/bin/pulseaudio.bak
~ ??? pulseaudio.bak --kill
W: [pulseaudio.bak] main.c: Couldn't canonicalize binary path, cannot self execute.
~ ??? paplay /usr/share/sounds/freedesktop/stereo/message.oga
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
~ ??? ps axu | grep -i pulse
francis+ 31563 0.0 0.0 10796 2144 pts/2 S+ 14:35 0:00 …Run Code Online (Sandbox Code Playgroud) 我的 Lenovo Legion 7i 笔记本电脑的扬声器没有声音,alsamixer 告诉我使用的是Realtek ALC287。
我尝试过各种 Linux 发行版和内核组合,包括 Ubuntu 16.04、18.04 和 20.04,带有默认内核和主线内核(5.7.x 和 5.8.x),以及带有 5.6.x、5.7.x 和 5.8.x 的 Manjaro内核。
在每种情况下,我都确保在 alsamixer 中禁用自动静音,并将所有音量级别调到最大。在所有情况下,我都听不到扬声器发出声音(运行扬声器测试、播放音乐等)。我是能够通过耳机和HDMI得到的声音(虽然我认为HDMI是通过不同的声卡)。
此外,当我查看 pavucontrol(表示正在播放声音的红橙色条)时,我可以看到发生了某种声音活动,但扬声器没有产生实际声音。
我的 alsa-info.sh 结果(来自 5.6.15 的 Manjaro)在这里(忽略这个,下面是新的):
http://alsa-project.org/db/?f=ba86fe76a9d9cf1cced56600edf82eb206a36a72
我很高兴从不同的发行版/内核组合再次运行脚本(或任何其他工具),请告诉我什么会有所帮助。
我已经用相同的信息提交了一个错误报告,但遗憾的是,唯一的回应来自其他有同样问题的人。
我该怎么做才能让我的声音正常工作?我在软件开发方面有经验,但在驱动程序或内核空间方面没有经验。在这一点上愿意学习和尝试任何事情。
更新
alsa-info.sh 使用更新的内核:
http://alsa-project.org/db/?f=4272343a3590cc08f192f98113dedfc0418afe52
我正在编写一些与声音相关的 python 程序,所以我使用了使用 PortAudio 库的 SoundDevice python 模块。我在使用 deepin 桌面的 arch linux 上。
如果我只是打开计算机并打印可用的设备,我会得到:
0 HDA Intel PCH: ALC887-VD Analog (hw:0,0), ALSA (2 in, 2 out)
1 HDA Intel PCH: ALC887-VD Digital (hw:0,1), ALSA (0 in, 2 out)
2 HDA Intel PCH: ALC887-VD Alt Analog (hw:0,2), ALSA (2 in, 0 out)
3 HDA ATI HDMI: 0 (hw:1,3), ALSA (0 in, 8 out)
4 sysdefault, ALSA (128 in, 128 out)
5 front, ALSA (0 in, 2 out)
6 surround40, ALSA (0 …Run Code Online (Sandbox Code Playgroud) 我正在尝试查找输出1或0取决于我是否将输出静音的命令。
我正在尝试这个:
amixer sget Master
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出:
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 64
Mono: Playback 64 [100%] [0.00dB] [on]
Run Code Online (Sandbox Code Playgroud)
现在这里的值会相应地改变(如果我减小音量,百分比和 dB 值会发生变化)。但是,如果我进入Pavucontrol“输出设备”选项卡上的输出并将其静音,则上述命令的输出保持不变。几乎没有任何变化。但是我的声音确实静音了。
我应该使用什么命令?为什么不[on]改成[off]?不应该吗?
提前致谢。
alsa ×10
audio ×7
pulseaudio ×7
alsamixer ×2
arch-linux ×2
centos ×1
deepin ×1
drivers ×1
ffmpeg ×1
gnome-shell ×1
gnome3 ×1
linux-mint ×1
scripting ×1
ubuntu ×1
usb-audio ×1
vagrant ×1