我Sound Settings
可以选择模拟和数字输出。当我选择“数字输出 (S/PDIF)”时,每次启动后我都必须降低音量。我该怎么做才能自动保存这些设置(关机时)?
这些是我关机时的设置:
启动后如下所示:
自动保存的是无论我选择模拟还是数字输出,并且模拟输出的音量设置也会被存储。
卡和芯片,设置
我不使用额外的声卡;我有华擎 M3N78D 主板并lshw
打印以下内容:
*-multimedia
Beschreibung: Audio device
Produkt: MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio
Hersteller: NVIDIA Corporation
Physische ID: 7
Bus-Informationen: pci@0000:00:07.0
Version: a1
Breite: 32 bits
Uhr: 66MHz
Fähigkeiten: pm bus_master cap_list
Konfiguration: driver=snd_hda_intel latency=0 maxlatency=5 mingnt=2
Ressourcen: irq:21 memory:fbd78000-fbd7bfff
启动时alsamixer
显示“芯片:VIA VT1718S”。
这是的输出aplay -l
:
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: NVidia [HDA NVidia], Gerät 0: VT1718S Analog [VT1718S Analog]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 0: NVidia [HDA NVidia], Gerät 1: VT1718S Digital [VT1718S Digital]
Sub-Geräte: 0/1
Sub-Gerät #0: subdevice #0
Karte 0: NVidia [HDA NVidia], Gerät 2: VT1718S HP [VT1718S HP]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
这是输出自pactl stat
:
Server-Name: pulseaudio
Server-Version: 1.1
Standard-Sample-Angabe: s16le 2ch 44100Hz
Standard-Kanalzuordnung: front-left,front-right
Standard-Sink: alsa_output.pci-0000_00_07.0.iec958-stereo
Standard-Quelle: alsa_input.pci-0000_00_07.0.analog-stereo
这是的输出amixer
:
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
Playback channels: Mono
Limits: Playback 0 - 42
Mono: Playback 0 [0%] [-63.00dB] [on]
Simple mixer control 'Headphone',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 42
Mono:
Front Left: Playback 42 [100%] [0.00dB] [on]
Front Right: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'PCM',0
Capabilities: pvolume penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 253 [99%] [0.40dB]
Front Right: Playback 253 [99%] [0.40dB]
Simple mixer control 'PCM Loopback',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 24 [77%] [1.50dB] [off]
Front Right: Playback 24 [77%] [1.50dB] [off]
Simple mixer control 'Front',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 42
Mono:
Front Left: Playback 39 [93%] [-4.50dB] [on]
Front Right: Playback 39 [93%] [-4.50dB] [on]
Simple mixer control 'Front Mic',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 31 [100%] [12.00dB] [off]
Front Right: Playback 31 [100%] [12.00dB] [off]
Simple mixer control 'Front Mic Boost',0
Capabilities: volume penum
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 3 [100%] [30.75dB]
Front Right: 3 [100%] [30.75dB]
Simple mixer control 'Surround',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 42
Mono:
Front Left: Playback 42 [100%] [0.00dB] [on]
Front Right: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'Center',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
Playback channels: Mono
Limits: Playback 0 - 42
Mono: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'LFE',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
Playback channels: Mono
Limits: Playback 0 - 42
Mono: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'Side',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 42
Mono:
Front Left: Playback 42 [100%] [0.00dB] [on]
Front Right: Playback 42 [100%] [0.00dB] [on]
Simple mixer control 'Line',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 0 [0%] [-34.50dB] [off]
Front Right: Playback 0 [0%] [-34.50dB] [off]
Simple mixer control 'CD',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 0 [0%] [-34.50dB] [off]
Front Right: Playback 0 [0%] [-34.50dB] [off]
Simple mixer control 'IEC958',0
Capabilities: pswitch pswitch-joined penum
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'IEC958 Default PCM',0
Capabilities: pswitch pswitch-joined penum
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 31
Front Left: Capture 28 [90%] [25.50dB] [on]
Front Right: Capture 28 [90%] [25.50dB] [on]
Simple mixer control 'Capture',1
Capabilities: cvolume cswitch penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 31
Front Left: Capture 0 [0%] [-16.50dB] [on]
Front Right: Capture 0 [0%] [-16.50dB] [on]
Simple mixer control 'Digital',0
Capabilities: cvolume penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 120
Front Left: Capture 60 [50%] [0.00dB]
Front Right: Capture 60 [50%] [0.00dB]
Simple mixer control 'Dynamic Power-Control',0
Capabilities: enum
Items: 'Disabled' 'Enabled'
Item0: 'Disabled'
Simple mixer control 'Independent HP',0
Capabilities: enum
Items: 'OFF' 'ON'
Item0: 'OFF'
Simple mixer control 'Input Source',0
Capabilities: cenum
Items: 'Front Mic' 'Rear Mic' 'Line' 'CD' 'Stereo Mixer'
Item0: 'Front Mic'
Simple mixer control 'Input Source',1
Capabilities: cenum
Items: 'Front Mic' 'Rear Mic' 'Line' 'CD' 'Stereo Mixer'
Item0: 'Stereo Mixer'
Simple mixer control 'Loopback Mixing',0
Capabilities: enum
Items: 'Disabled' 'Enabled'
Item0: 'Disabled'
Simple mixer control 'Rear Mic',0
Capabilities: pvolume pswitch penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 31 [100%] [12.00dB] [off]
Front Right: Playback 31 [100%] [12.00dB] [off]
Simple mixer control 'Rear Mic Boost',0
Capabilities: volume penum
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 0 [0%] [0.00dB]
Front Right: 0 [0%] [0.00dB]
奇事异闻
当我在听音乐时切换到“模拟输出”时,连接到数字输出的扬声器也可以使用,但音量会达到 100%,我无法调整它 - 只有当我切换回“数字输出”或使用alsamixer
和调暗“PCM”时才可以。
当我在“音频设置”中选择“数字输出”并启动时alsamixer
,更改“主”音量没有任何影响。那里也显示“S/PDIF”和“S/PDIF D”,但都设置为“00”,我无法修改它们……
当我将音量调整到正常水平(即 40%)并运行sudo alsactl store
并重新启动时,面板中的音量图标不会显示 100%,但声音会显示 100% - 直到我向下滚动图标上方:然后它立即跳转到 39%。
答案1
我也有同样的问题。模拟信号已保存/恢复,但启动后 SPDIF 总是会发出最大声响。我不太喜欢在登录时将音量设置为零或低的解决方法,因为我最讨厌登录屏幕上的启动声音,它震破了我的窗户。我还没有找到解决办法,但情况有所好转。这是我所做的:
- 我认为问题可能源于模拟输出是卡 0 的设备 0,而数字输出是设备 1(卡 0)。(XiFi 芯片或类似的东西)并且存储/恢复过程仅存储第一个。但是 alsactl store/restore(重新)存储所有音量级别的“完成”状态。
- 我得出结论,alsa 不会保存/恢复 spdif 输出的状态(card:0,device:1),因为“alsactl store”/“... restore”对 spdif 通道没有影响。它仍保持原样。
- 在声音控制面板中选择 SPDIF 后运行“alsactl store”会给我一个不同的 /var/lib/alsa/asouns.state 文件。不确定这会导致什么,但也许 alsa 会根据控制面板中选择的输出看到不同的音量控制?
- alsactl -f /var/lib/alsa/asound.state 存储似乎有效(给我一个新的 asouns.state)
- alsactl -f /var/lib/alsa/asound.state restore 显示:“alsactl:set_control:1464:无法写入控制‘2:0:0:IEC958 Playback Default:0’:操作不允许”
- 我发现 IEC958 确实是数字输出。
- 停止了我的音乐播放器:错误消失
- 安装pavucontrol,选择默认输出
- 删除了 /var/lib/alsa/asound.state
- 重启
- 音量滑块现在在重新启动时恢复,实际音量似乎不是
也许它对某些人有帮助..至少删除你的 asound.state 并看看它是否有帮助。
答案2
我不知道有什么方法可以“正确”地完成此操作,但您可以添加启动脚本来完成此工作。使用程序“amixer”,我可以生成输出,其中列出 0 到 64 之间的声音输出设置,包括“主”通道。在关机之前,可以对其进行解析(也许使用正则表达式?)以将音量存储在文件中。当系统再次启动时,可以发出命令“amixer set CHANNEL VALUE”以将音量设置为存储的值。
通过将其添加到 shell 脚本(通常是 /etc/init.d 中的启动作业),您可以自动完成它,这应该会让它看起来天衣无缝。我以前用过这些启动脚本来做其他事情,我完全看不出它为什么不能解决您的问题。
细节:
第一步是创建一个能够更改音量的 shell 脚本。目前我没有时间,也没有所有详细的知识来为您编写它,但是如果您对脚本有所了解,或者您可以找到一个好的教程,那么这应该不难。如果您遇到问题,我很乐意提供帮助。下面是您可以使用的模板。
#! /bin/sh
start(){
# This function is called on startup
# This is where you will need to read the volume from a file and call amixer
}
stop(){
# This function is called on shutdown
# This is where amixer is called and the volume is saved to file
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage: avolumesaver {start|stop}"
exit 1
esac
exit 0
基本上,每次系统启动时都会调用 start 函数,而关闭前会调用 stop 函数。您可以在这些函数中执行任何需要的操作。您应该以 root 身份打开编辑器(在终端输入“sudo gedit”),然后将文件保存为“/etc/init.d/avolumesaver”。执行此操作后,您需要发出以下命令:
chmod a+x /etc/init.d/avolumesaver
update-rc.d avolumesaver defaults
第一行将使脚本可执行。第二行将其转换为 upstart 作业。从技术上讲,这仅意味着创建了一些符号链接,但最好使用 update-rc.d 而不是尝试自己添加链接。
完成此操作后,您可以编辑 /etc/init.d/avolumesaver,直到实现所需的效果。您可以通过发出以下命令(使其成为 upstart 作业后)来测试功能,而无需实际重新启动:
service avolumesaver start
service avolumesaver stop
答案3
我问过类似的问题这里. 也许这能有所帮助。
每次登录后,它将音量级别设置为特定值。它与 PulseAudio 和数字输出配合使用。
将默认脉冲配置文件复制到您的家庭位置:
cp /etc/pulse/default.pa ~/.pulse
在您的配置文件中找到以下行:
load-module module-always-sink
紧接着上面这一行,添加下面这一行:
set-sink-volume 0 {your-volume-level-here}
音量级别是 0 到 65535 范围内的数字。例如:
set-sink-volume 0 32768
答案4
我希望这可以帮助到别人..我一直有这个问题,我刚刚在 ubuntu 13:10(Pear Os 8)上修复了它。在 /etc/pulse/default.pa 文件中,有一行选择 alsa sink..这对我来说是关键。我必须将其改为这样才能节省音量...
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
load-module module-alsa-sink
load-module module-alsa-sink device=hw:0,1
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink
现在在 load-module module-alsa-sink device=hw:0,1 行上,你可能必须使用 aplay -l 示例更改 PCM 位置https://wiki.archlinux.org/index.php/PulseAudio/Examples
您的号码将是 hw:X(卡号),X(设备号)
我希望其他人读到这篇文章并让他们的声音正常工作,因为多年来这对我来说一直是一个巨大的痛苦。