当我插入耳机时,音频输出设备会从扬声器切换到耳机。
与其一直插拔耳机,不如将其最终插在我的线/插孔上,我只想使用软件开关即可。
当我打开“声音设置”并从“耳机->内置音频”切换到“线路输出->内置音频”时,扬声器或耳机没有声音。
我打开alsamixer来查看插入/拔出耳机时会发生什么。
在插入耳机的情况下,我手动更改了所有设置,以使其与耳机未打开但仍未从扬声器获得任何声音的设置相匹配。
附带说明,通过“声音设置”更改音频输出设备会对alsamixer进行相同的更改。
当我插入耳机时,音频输出设备会从扬声器切换到耳机。
与其一直插拔耳机,不如将其最终插在我的线/插孔上,我只想使用软件开关即可。
当我打开“声音设置”并从“耳机->内置音频”切换到“线路输出->内置音频”时,扬声器或耳机没有声音。
我打开alsamixer来查看插入/拔出耳机时会发生什么。
在插入耳机的情况下,我手动更改了所有设置,以使其与耳机未打开但仍未从扬声器获得任何声音的设置相匹配。
附带说明,通过“声音设置”更改音频输出设备会对alsamixer进行相同的更改。
Answers:
根据设计,当插入耳机时,Pulseaudio会自动关闭“线路输出”,而是使用“耳机”滑块。您可以在alsamixer中观察到此行为。我们想要的是让“耳机”和“线路输出”滑块分别同时工作。如果要重新映射Realtek的插孔,例如耳机的后方绿色和扬声器的蓝色,则这非常有用(借助于alsa-tools的hdajackretask)。
为此,您应该直接编辑Pulseaudio混音器的配置。
编辑:
/usr/share/pulseaudio/alsa-mixer/paths/analog-output-lineout.conf
找:
[Jack Headphone]
state.plugged = no
state.unplugged = unknown
更改no
为yes
。
如果您使用的是计算机机箱正面的插孔,请更换[Jack Front Headphone]
。
我们想将Line Out与Master合并。将此片段添加到文件末尾:
[Element Line Out]
switch = mute
volume = merge
编辑:
/usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf
将此片段添加到文件末尾:
[Element Line Out]
switch = off
volume = off
在某些系统上,您可能还需要通过添加以下代码段来禁用Front:
[Element Front]
switch = off
volume = off
打开alsamixer:alsamixer -c0
或alsamixer -c1
使用←/ →进入自动静音模式。使用禁用自动静音模式↓。使用来关闭alsamixer Esc。
使用以下方法保存更改: alsactl store
$ pulseaudio -k
$ pulseaudio --start
现在,您在pulseaudio的同一接收器上有两个单独的端口。它们彼此静音,因此您可以切换到耳机,这将使Line Out静音,反之亦然。要在端口之间切换,可以使用Gnome或Plasma混音器,或安装适当的桌面扩展。
/usr/share
。如果Pulseaudio收到更新(例如,修复错误),您的更改将被清除。通常,有一种机制可以提供/etc
类似文件或类似文件的替代文件,但是我不特别了解Pulseaudio。
为了可以在扬声器和耳机之间切换,请按照下列步骤操作:
alsamixer
。或者,您可以使用一个命令执行所有这些步骤:
amixer -c 1 set 'Auto-Mute Mode' Disabled
现在,您可以在PulseAudio音量控制中在扬声器和耳机之间切换。
应用这些说明后,您可以使用“ 声音切换器指示器”在耳机和扬声器之间快速切换,从而使生活更轻松。
hdajackretask是一种工具,可将插孔的功能重新分配给不同的输入,输出或禁用-例如,将Mic插孔转换为额外的耳机,或者为什么不使它们同时输出并连接到环绕声接收器呢?
sudo apt-get update
sudo apt-get install alsa-tools-gui
hdajackretask
然后运行以覆盖您的千斤顶之一:
我发现同时覆盖耳机和扬声器效果最好。
hdajackretask屏幕快照,将耳机切换为扬声器:
单击“立即应用”后,将创建一个shell脚本来进行更改并提示执行超级用户密码。该脚本也保存在/tmp
其中,可以将其复制并随后在命令行中使用sudo执行。
正如前面提到的,hdajackretask
创建一个脚本,script.sh
在/tmp
类似于/tmp/hda-jack-retask-QW1EEZ/
为你的愿望插孔功能:
#!/bin/sh
echo "0x12 0x90a60140" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x14 0x90170150" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x17 0x40000000" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x18 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x19 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1a 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1b 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1d 0x40700001" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1e 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x21 0x40f000f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo 1 | tee /sys/class/sound/hwC0D0/reconfig 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
将此脚本复制到系统上的其他位置(/ tmp除外)
cd /tmp/hda-jack-retask-QW1EEZ
cp script.sh ~username/speaker.sh
然后编辑Speaker.sh
cd ~username
nano speaker.sh
killall pulseaudio &
在文件顶部添加该行。这是必要的,因为在运行时无法更改插孔功能pulseaudio
。默认情况下pulseaudio
会重生。另外,将errors.log
文件的路径更改为/tmp
您喜欢的任何位置:
#!/bin/sh
killall pulseaudio &
echo "0x12 0x90a60140" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x14 0x90170150" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x17 0x40000000" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x18 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x19 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1a 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1b 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1d 0x40700001" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1e 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x21 0x40f000f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo 1 | tee /sys/class/sound/hwC0D0/reconfig 2>>/tmp/errors.log
要运行脚本:
sudo ./speaker.sh
从alsa-tools-1.1.5 / hdajackretask / README文档中:
大多数HDA Intel声卡在某种程度上是可重新分配任务的,即可以用于多种用途。此工具是一个GUI,可让您轻松重新分配插孔的任务-例如,将Mic插孔转换为额外的耳机,或者为什么不使它们的两个线路都输出并连接到您的环绕声接收器呢?
从命令行启动应用程序“ hdajackretask”。在顶部栏中选择一个编解码器;有些人只有一个-如果您有多个,则一个是“主要”一个,其余的可能是HDMI编解码器。
所有插孔(和其他输入/输出)都显示在“引脚配置”下。要覆盖您的一个插孔,请单击该引脚的“覆盖”复选框,然后选择所需的功能。注意:如果选择“ Line out(back)”替代,则还应具有“ Line out(front)”替代。“线性输出(中心/ LFE)”替代仅适用于前两个替代,依此类推。
您可以通过单击“立即申请”来尝试新配置。要使新配置默认启动,请单击“安装启动替代”。进行这些操作都需要root特权,因此可能会要求您输入密码。
你搞砸了吗 单击“删除启动替代”按钮,然后在该过程完成后关闭计算机,请稍等片刻,然后重新打开。您现在应该回到起点。
如果是这样,那就开心一点,分享快乐,做点好事!
如果没有,请尝试以下操作:
进入alsamixer,查看是否有新的音量控件,并查看它们是否未静音并设置为合理的值。
有时,驱动程序不会关闭未连接的引脚(如果未连接,为什么要担心?)。您可以通过将计算机完全关闭一会儿来解决此问题。
请参阅下面的“模型=自动”选项
如果这样做没有帮助,则很可能遇到驱动程序或硬件限制。您可能会遇到驱动程序错误(也许以前没有人测试过四副耳机!)。如果您愿意,请随时在alsa-devel邮件列表中报告这些消息:但是,由于缺乏人力,很有可能会以非常低的优先级来处理这些问题(对于标准配置,开箱即用的声音是比支持奇怪的配置更重要)。但是,如果您是内核黑客,并且想出了一个可以解决您的问题而又不会搞砸其他任何东西的补丁,那么很有可能将其合并。
如果您怀疑问题出在此GUI应用程序而不是内核驱动程序,请随时给我写一封电子邮件(如果需要,请提供补丁!)。如果是这样,请写信给diwic@ubuntu.com。
显示未连接的引脚您的BIOS负责设置编解码器上哪些引脚实际连接到某物,哪些引脚没有连接。有时BIOS有问题,并且不会显示所有插孔。如果您的插孔中有BIOS提示您没有插孔,则可以尝试启用随机插针,然后查看是否起作用。
Set Model = auto某些编解码器,特别是较旧的编解码器以及3.8和更低版本的内核,经过硬编码以使用特定的模型,因此不会在意您的替代。在许多情况下,并且在一个相当新的内核下,自动解析器现在也适用于这些编解码器。您可以通过选中此框来强制使用自动解析器。但是,在某些情况下,存在显式模型是有原因的,如果是这样,则会陷入困境。
高级替代仅适用于专家。它使您可以分别选择每个配置字段,而不仅仅是几个有意义的预定义值。请注意,此处的大多数组合都以一种或另一种方式无效,因此,除非您已阅读并理解了HD Audio规范的“ Configuration Default”(配置默认值)部分,否则您应该不会对此感到困惑。(在撰写本文时,可在以下位置找到:http: //www.intel.com/content/dam/www/public/us/en/documents/product-specifications/high-definition-audio-specification。 pdf)
解析器提示这使您可以向驱动程序发送特殊的“提示”,从而导致解析行为有所不同。除非已阅读驱动程序文档,否则将它们保留为“默认”设置。(在撰写本文时,可在此处获得:https : //www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt-参见“提示字符串”部分。)
在KDE中,可以这样做:
系统设置->多媒体->音频和视频设置->音频硬件设置选项卡>选择适当的声卡>在连接器下,您将看到耳机和扬声器选项。
如果您不介意添加PPA,则可以使用Sound Switcher Indicator。
这将在系统托盘中提供一个指示器,您可以单击该指示器以更改输入或输出音频源。您可以在http://yktoo.com/en/software/indicator-sound-switcher上了解更多信息。
终端方式
要安装,请使用终端输入以下内容。
sudo add-apt-repository ppa:yktooo/ppa
sudo apt-get update
sudo apt-get install indicator-sound-switcher
GUI方法
要使用GUI安装,请按照下列步骤操作:
从Unity Dash 启动软件和更新应用程序。
在“其他软件”选项卡上单击。然后添加以下新资源:
deb http://ppa.launchpad.net/yktooo/ppa/ubuntu vivid main
(切记用Ubuntu版本替换“ vivid”。受支持的版本在http://ppa.launchpad.net/yktooo/ppa/ubuntu/dists/中列出)。
从Unity Dash 启动Ubuntu软件中心。
搜索“声音输入/输出选择器指示器”,然后安装。
注意:如果您的系统在耳机插孔内有硬件开关(如Terrance上面建议的那样),则此解决方案将不起作用。
我为这个问题制作了这个脚本:
https://github.com/biplobsd/Fixing-front-panel-audio
只需在终端中运行存储库的README文件中给出的命令即可。这将下载并运行脚本。
这些命令是:
git clone https://github.com/biplobsd/Fixing-front-panel-audio.git
cd Fixing-front-panel-audio
chmod +x Fixing-front-panel-audio.sh
./Fixing-front-panel-audio.sh