
У меня есть внешняя звуковая карта USB для подключения моего ПК (Fedora 20) к моему стереоусилителю:
http://www.project-audio.com/main.php?prod=usbbox&cat=boxes&lang=en
Теперь это обычно работает нормально, однако время от времени у меня возникают проблемы с настройками громкости. В частности, при воспроизведении видео и музыки с помощью VLC настройки громкости, как правило, сбиваются. Например, в Pulse Audio Volume Control я устанавливаю основную громкость на 100%, но затем в VLC настройка громкости оказывается ниже 100%. Если я затем увеличиваю громкость в VLC до 100%, основная громкость фактически становится выше 100%, что не очень желательно, поскольку это приведет к искажению звука. То же самое происходит и при воспроизведении видео YouTube в Firefox. Это довольно раздражает, поскольку это не только снижает качество звука, но и приводит к непредсказуемому поведению, поскольку одна настройка громкости на усилителе может создавать широкий диапазон фактической громкости на моих динамиках.
Итак, как мне полностью отключить настройку громкости на ПК, зафиксировав ее на 100% и управлять фактической громкостью только на усилителе? Другими словами, я хотел бы, чтобы звуковая карта USB вела себя точно так же, как проигрыватель компакт-дисков, тюнер или другой источник звука с фиксированным уровнем выходного сигнала.
решение1
У меня была проблема с некоторыми сходствами (включая сломанный объем, но на низком уровне). Я нашел обходной путь и объяснил вPulseaudio с внешним звуковым адаптером: решение проблемы прерывистого звука.
Давайте адаптируем его для вашего случая. Команда ниже должна найти для вас правильное имя приемника (она просто берет первое):
export LC_ALL=C
ADAPTER_SINK_NAME=$( pactl list sinks | sed -n 's/^.*Name: \(.*\)$/\1/p' | head -n 1 )
echo $ADAPTER_SINK_NAME
затем подключите его к программно-определяемому приемнику, который позволит вам установить громкость
pacmd load-module module-combine sink_name=adapter-soft-volume slaves=$ADAPTER_SINK_NAME
pactl set-default-sink adapter-soft-volume
Подробности см.Pulseaudio с внешним звуковым адаптером: решение проблемы прерывистого звука
Это должно работать для приложений, запускаемых с этого момента.
(Необязательно) это переместит текущие запущенные приложения на использование этого приемника.
for SINK_ID in $(pactl list sink-inputs | sed -n 's/^Sink Input #\([0-9]*\)$/\1/p')
do
echo Sink $SINK_ID
pactl move-sink-input $SINK_ID adapter-soft-volume
done