Как сохранить параметры громкости для цифрового вывод (S/PDIF)?

В Sound Settings Я могу выбрать между аналоговым выходом и цифровым вывод. Когда я выбираю "Digital Output (S/PDIF)", я должен уменьшить объем каждый раз после того, как я загружаюсь. Что я мог сделать для того, чтобы сохранить эти настройки автоматически (при закрытии)?

Это настройки, когда я закрылся:

enter image description here

И это похоже на это после начальной загрузки:

enter image description here

То, что становится сохраненным автоматически, - выбрал ли я аналоговый выход или цифрового вывод, и также параметры громкости аналогового выхода становятся сохраненными.

Карта и микросхема, настройки

Я не использую дополнительную звуковую карту; у меня есть системная плата ASRock 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 показывает мне "Микросхему: ЧЕРЕЗ 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".

Когда я выбираю "Digital Output" в Параметрах звука и запускаюсь alsamixer, изменение "Основного" объема не оказывает влияния. "S/PDIF" и "S/PDIF D" показывают там также, но оба установлены на "00", и я не могу изменить их...

Когда я регулирую громкость к нормальному уровню (т.е. 40%) и работаю sudo alsactl store и перезагрузка, значок громкости в панели не показывает 100%, но звук идет с 100% - пока я не прокручиваю вниз выше значка: Затем это сразу переходит к 39%.

4
задан 22 July 2012 в 14:11

5 ответов

Я не знаю ни одного способа сделать это «должным образом», но вы можете добавить сценарий запуска, чтобы выполнить эту работу. Используя программу «amixer», я могу произвести вывод, в котором перечислены настройки звуковых выходов от 0 до 64, включая канал «Master». Непосредственно перед выключением это можно проанализировать (возможно, с помощью регулярных выражений?), Чтобы сохранить том в файле. Когда система загружается снова, может быть выдана команда «amixer set CHANNEL VALUE», чтобы установить громкость на сохраненное значение.

Добавив это в скрипт оболочки (обычно это задание запуска в /etc/init.d), вы можете сделать это автоматически, что должно сделать его безупречным. Я использовал эти сценарии запуска раньше, чтобы делать другие вещи, и я не вижу никакой причины, почему это не могло решить и вашу проблему.

Подробности:

Первым шагом будет создание сценария оболочки, способного изменять громкость. В настоящее время у меня нет ни времени, ни всех подробных знаний, чтобы написать это для вас, но если вы немного разбираетесь в скриптах или можете найти хороший учебник, это не должно быть так сложно. Я буду рад помочь, если у вас возникнут проблемы. Ниже приведен шаблон, который вы можете использовать.

#! /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

Как правило, функция запуска вызывается при каждом запуске системы, а функция остановки вызывается перед выключением. Вы можете делать все, что вам нужно внутри этих функций. Вы должны открыть редактор как root («sudo gedit» в терминале), а затем сохранить файл как «/etc/init.d/avolumesaver». После этого вам нужно будет выполнить следующие команды:

chmod a+x /etc/init.d/avolumesaver
update-rc.d avolumesaver defaults

В первой строке будет выполнен скрипт. Вторая строка превращает его в выскочку работы. Технически это просто означает, что созданы некоторые символические ссылки, но это хорошая идея использовать update-rc.d, а не пытаться добавлять ссылки самостоятельно.

После этого вы можете редактировать /etc/init.d/avolumesaver, пока не добьетесь того, чего хотите. Вы можете проверить функциональность без фактической перезагрузки, выполнив следующую команду (после того, как сделаете это выскочкой):

service avolumesaver start
service avolumesaver stop
0
ответ дан 22 July 2012 в 14:11

Я надеюсь, что это выручит кого-то.. У меня всегда была эта проблема, и я просто закрепил ее на человечности 13:10 (груша Os 8). в/etc/pulse/default.pa файле существует строка для выбора приемника alsa.. это - ключ для меня. Это - то, на что я должен был изменить мой заставить его сохранить объемы...

### 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

Теперь на загрузочном модуле строки module-alsa-sink device=hw:0,1 Вы, вероятно, придется изменить Ваше местоположение PCM с помощью aplay-l примеры здесь https://wiki.archlinux.org/index.php/PulseAudio/Examples

Ваши числа будут hw:X (номер карты), X (Номер устройства)

Я надеюсь, что другие читают это и получают их звук, работающий, поскольку это было огромной болью для меня в течение многих лет.

0
ответ дан 22 July 2012 в 14:11

Попробуйте закомментировать следующие строки в /etc/pulse/default.pa:

load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
0
ответ дан 22 July 2012 в 14:11

Я задал похожий вопрос здесь . Может быть, это могло бы помочь.

Он устанавливает уровень громкости для определенного значения после каждого входа в систему. Он работает с PulseAudio и цифровым выходом.

  1. Скопируйте файл конфигурации импульсов по умолчанию в ваше домашнее местоположение:

    cp /etc/pulse/default.pa ~/.pulse

  2. В вашем файле конфигурации найдите следующую строку: [ 1112]

    load-module module-always-sink

    Сразу после вышеприведенной строки добавьте следующую строку:

    set-sink-volume 0 {your-volume-level-here}

    Уровень громкости - это число в диапазоне 0. 0,65535. Например:

    set-sink-volume 0 32768

0
ответ дан 22 July 2012 в 14:11

У меня такая же проблема. Аналог сохраняется / восстанавливается, но после запуска SPDIF всегда работает на полную мощность. Мне не особенно нравится обходной путь установки громкости на ноль или на низком уровне при входе в систему, так как меня больше всего раздражает звук запуска на экране входа в систему, который выбивает мои окна. Я действительно не нашел решения, но все стало лучше. Вот что я сделал:

  • Я подумал, что, возможно, проблема в том, что аналоговый выход - это устройство 0 карты 0, а цифровой - это устройство 1 (карты 0). (Чип XiFi или что-то) и процедура сохранения / восстановления сохраняет только первый. Однако alsactl store / restore (re) сохраняет состояние «Complete» со всеми уровнями громкости.
  • Я пришел к выводу, что alsa не сохраняет / восстанавливает состояние выхода spdif (карта: 0, устройство: 1), так как «alsactl store» / «... restore» не влияет на канал spdif. Он остается там, где его.
  • Запуск alsactl store после выбора SPDIF на панели управления звуком дает мне другой файл /var/lib/alsa/asouns.state. Не уверен, к чему это приводит, но, возможно, alsa видит разные регуляторы громкости в зависимости от того, какой выход выбран на панели управления?
  • Магазин alsactl -f /var/lib/alsa/asound.state, кажется, работает (дает мне новый asouns.state)
  • Восстановление alsactl -f /var/lib/alsa/asound.state дает мне: «alsactl: set_control: 1464: Невозможно записать элемент управления» 2: 0: 0: IEC958 Воспроизведение По умолчанию: 0 ': операция не разрешена "
  • Я понял, что IEC958 действительно является цифровым выходом.
  • Остановился мой музыкальный проигрыватель: ошибка исчезла
  • установлен pavucontrol, выбран выход по умолчанию
  • удален /var/lib/alsa/asound.state
  • перезагрузка
  • ползунок громкости теперь восстанавливается при перезапуске, реальная громкость не такая, как кажется

Может быть, это кому-то поможет ... хотя бы удалите ваше asound.state и посмотрите, поможет ли это.

0
ответ дан 22 July 2012 в 14:11

Другие вопросы по тегам:

Похожие вопросы: