我已经为 Ubuntu 安装了 XFCE 并将其用作我的默认 X 会话。此更改后出现了一些声音问题:
我可以使用 alsamixer 或键盘上的热键使声音静音。但仅仅重新启用它不足以取消静音。
为了取消静音,我需要:
这是我可以让它再次工作的唯一方法。
当我使用手机时没有出现这个问题。
怎么会这样?
作为我的 Sphinx 设置的一部分,我听我的输入设备是这样的:
gst-launch alsasrc
Run Code Online (Sandbox Code Playgroud)
(嗯,实际的命令是这样的:alsasrc ! audioconvert ! audioresample ! vader name=vad auto-threshold=true ! pocketsphinx name=asr ! fakesink
,但只有第一点我遇到了问题。)
这有效,它加载到默认声卡中。我也可以通过这个选项:
gst-launch alsasrc device="default"
Run Code Online (Sandbox Code Playgroud)
这基本上是一样的。
但是当我尝试将它传递给任何其他输入设备时,例如:
gst-launch alsasrc device="USB Device 0x46d:0x8d7"
Run Code Online (Sandbox Code Playgroud)
它抱怨设备不存在。
现在,在gst-inspect alsasrc
文档中,它说:
device : ALSA device, as defined in an asound configuration file
flags: leesbaar, schrijfbaar
String. Default: "default"
Run Code Online (Sandbox Code Playgroud)
我的印象是大多数pulseaudio安装不再使用这些配置文件。
那么,我该怎么做才能选择我的输入设备呢?既然pulseaudio是常态,alsasrc是否甚至可能完全被弃用?
我有一个带有 AES/EBU 输入端口的声卡,我想同时使用两个应用程序访问它。我想将输入实时记录到线性 WAV 文件中,同时还通过 IceCast 进行流式传输。如果我天真地尝试使用两个应用程序访问同一个输入设备,则有人告诉我它无法访问该设备。我如何设置 ALSA 以实现此目的?或者我是否必须通过一些外部程序来传递它,从而引入延迟?
我遇到了这个非常烦人的问题,耳机插孔在冷启动后可以正常工作。但是在挂起或冷重启(重新启动计算机而不完全关闭计算机)后,耳机插孔将停止工作。
当耳机插入和拔出时,系统会检测到,但耳机不再发出声音。
我仅在 XMG A305 笔记本电脑上的 Ubuntu 14.04(在我的 Windows 分区下它工作正常)下遇到这种情况。这个问题似乎与我的声卡(卡:HDA Intel PCH,芯片:VIA VT1802)使用的驱动程序或不同驱动程序之间的交互有关。
此外,还有其他几个人在其他机器上遇到过这种情况: Clevo Laptop 的错误报告
我得到了这么远(来自.bashrc
):
alias i="amixer -c 0 -- sset Master playback +1dB"
alias d="amixer -c 0 -- sset Master playback -1dB"
alias v4="amixer -c 0 -- sset Master playback 40%"
alias v8="amixer -c 0 -- sset Master playback 80%"
Run Code Online (Sandbox Code Playgroud)
前两行应该可以工作,如果我man amixer
正确阅读了页面,并且它们不会产生错误消息,但它们的行为是不可靠的:有时会有巨大的变化,通常什么也没发生。
最后两行有效。我猜你可以做十个别名。不过,您希望增加/减少功能绑定到键盘快捷键。
我是使用amixer
错误的方式还是有其他工具可以做到这一点?(alsamixer
CLI 命令似乎没有此功能。)
编辑
最后,让它工作。这是很久以前的事了(多么悲伤!),所以我已经忘记了谁贡献了什么。不管怎样,谢谢。(下图:对于 bash 用户,输入.bashrc
)
# volume
alias vol="alsamixer"
MASTER="amixer -q -c 0 sset Master playback"
alias i="$MASTER 2dB+"
alias d="$MASTER 2dB-"
alias mute="echo \" Audio muted.\"; $MASTER mute" …
Run Code Online (Sandbox Code Playgroud) 如何将 PulseAudio 配置为仅使用单个 ALSA 设备进行输入和输出?
默认的 PulseAudio 配置会导致 PulseAudio 在启动时打开所有 ALSA 设备。这使得 PulseAudio 无法与其他 ALSA 客户端一起使用。与 ALSA 相比,许多人更喜欢 PulseAudio,但其他用户觉得它令人沮丧。不管是好是坏,PulseAudio 已经成为一种标准,一些流行的 Linux 应用程序,例如 Skype 和 Firefox,只支持通过 PulseAudio 输出音频。
一些用户更喜欢使用直接输出到 ALSA 的音频客户端,其他人则输出到另一个音频框架,如 JACK,但希望让 JACK 直接访问 ALSA。对于这些用户,通过卸载 PulseAudio 可以轻松释放所有 ALSA 设备。但是,删除 PulseAudio 会导致无法在 Skype 和 Firefox 中使用音频。
更好的解决方案是提出一种配置,使 PulseAudio 能够与其他 ALSA 客户端“很好地播放”,仅输出到在其配置中指定的单个设备,甚至只是 ALSAdefault
设备。我们怎么做?
我安装的声卡在我的 Linux 安装中没有检测到,但是当我从 Live CD 启动时它被检测到并且可以工作。我试图用 Alsa 做各种各样的事情来让它工作,但没有成功。我想知道 Alsa 是否可以帮助解决这个问题,因为我不确定它是否负责检测声卡硬件。
如何通过我的一些自定义 ALSA 设备使 VLC 播放?
我创建了几个自定义 ALSA 设备(用于路由、放大、混合和其他目的)并且可以将它们与 Mplayer 一起使用而没有任何问题,但是 VLC 没有在其可用的 ALSA 设备列表中显示它们。
这是 VLC 在其设置窗口中显示的列表:
但是这些设备都不是来自我的~/.asoundrc文件。
alsa ×8
audio ×6
linux ×6
pulse-audio ×2
ubuntu ×2
bash ×1
gstreamer ×1
headphones ×1
mute ×1
skype ×1
sound-card ×1
ubuntu-10.04 ×1
xfce ×1