Pulseaudio с внешним звуковым адаптером: устранение прерывания звука

Для удаления всплывающего окна в Slackware, я работал:

removepkg /var/log/packages/xfce4-notifyd-0.2.2-i486-2
2
01.09.2015, 09:35
2 ответа

У меня есть экспериментальный обходной путь.

Сначала получите имя приемника адаптера

, сначала нужно выяснить имя раковины для адаптера. Откройте оболочку. Предположим bash bash и предотвратить любую проблему локализации, переключаясь на локаль по умолчанию:

export LC_ALL=C 

, чтобы получить список монет:

pacmd list-sinks | grep name:

Вы можете прочитать выходные данные и копировать вручную вручную. Командная строка: Adapter_sink_name = name_in_your_setup

Более автоматически, строка ниже находит имя первого не-PCI адаптера, который будет работать для меня и должен работать во многих случаях.

ADAPTER_SINK_NAME=$( pacmd list-sinks | sed -n 's/^.*name: <\([^>]*\.usb[^>]*\)>$/\1/p' | head -n 1 )
echo $ADAPTER_SINK_NAME

Альтернативное использование PACTL PACTL (но запустите строку , или она не найдет ничего не найдет в локалях Non-по умолчанию):

ADAPTER_SINK_NAME=$( pactl list sinks | sed -n 's/^.*Name: \(.*\.usb.*\)$/\1/p' | head -n 1 ) 
echo $ADAPTER_SINK_NAME

Получить частичное исправление (1) ( 2) (3)

Теперь это предоставит точки (1) (2) (3) вопроса:

pactl set-default-sink $ADAPTER_SINK_NAME

Интересно, что я впервые использовал PACMD Set-Diflement-intine ... ( PACMD вместо PACTL ), которые предусмотрены (2) и (3), но не всегда (1).

Получите полное исправление (1) до (4)

, он основан на Могу ли я использовать Pulseaudio для воспроизведения музыки на двух звуковых картах одновременно? Хотя принцип скорее воспроизводится на «одной звуковой карте одновременно". ; -)

pacmd load-module module-combine sink_name=adapter-soft-volume slaves=$ADAPTER_SINK_NAME
pactl set-default-sink adapter-soft-volume

Теперь все работает как запрошено в вопросе.

Очистка.

Если вы запустите команды выше несколько раз, будет несколько комбинированных тонусов, и первый будет использован, а не последний. Если по какой-либо причине вы хотите начать сначала, сначала запустите это, чтобы очистить комбинированную раковину:

pacmd unload-module module-combine

Не используйте очистку сейчас, если вы хотите продолжить

Бонус: Переместить в настоящее время воспроизведение потоков к адаптеру

Команда выше работы для новых потоков, а не те, которые уже играют. Это будет корректировать то, что нужно:

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_SINK_NAME
    pactl move-sink-input $SINK_ID adapter-soft-volume
done

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

Автоматизируйте вещь

Вот сценарий, обеспечивающий преимущества (1) до (4). Возможно, вы захотите добавить ввод движения ввода сверху. Возможно, было бы интересно иметь его, когда адаптер подключен его.

#!/bin/bash

export LC_ALL=C

ADAPTER_SINK_NAME=$( pacmd list-sinks | sed -n 's/^.*name: <\([^>]*\.usb[^>]*\)>$/\1/p' | head -n 1 )

if [[ -z "${ADAPTER_SINK_NAME:-}" ]]
then
    ADAPTER_SINK_NAME=$( pactl list sinks | sed -n 's/^.*Name: \(.*\.usb.*\)$/\1/p' | head -n 1 ) 
fi

echo will plug on $ADAPTER_SINK_NAME

# partial fix, can be run anyway to provide partial benefit if later steps fail
pactl set-default-sink $ADAPTER_SINK_NAME

pacmd unload-module module-combine # not useful first, used to clean things up if run several times

pacmd load-module module-combine sink_name=adapter-soft-volume slaves=$ADAPTER_SINK_NAME
pactl set-default-sink adapter-soft-volume
4
27.01.2020, 21:56

В соответствии с пунктом 4, нет звука ниже 35% громкости.

Та же проблема, другой дистрибутив (Fedora, а не Ubuntu). Команды, описанные в существующем ответе ( set-default-stream ...), к сожалению, не помогают в этом случае.

В Fedora 22 изменение файла конфигурации помогло:

Файл конфигурации: / usr / share / pulseaudio / alsa-Mixer / paths / analog-output.conf.common

Посмотрите для раздела [Element PCM]:

[Element PCM]
switch = mute
volume = merge
override-map.1 = all 
override-map.2 = all-left,all-right

Замените строку «volume = merge» этими двумя строками:

volume = ignore
volume-limit = 0.01

Перезагрузите pulseaudio:

$ pulseaudio -k

Перезагрузите аудиоплеер и повторите попытку.

От: https://chrisjean.com/fix-for-usb-audio-is-too-loud-and-mutes-at-low-volume-in-ubuntu/

(См. , ошибка 1248649 .)

Однако этот обходной путь, похоже, больше не помогает с Fedora 23 (pulseaudio 7.1) - или, возможно, необходимо использовать другие значения.

Надеюсь, это будет кому-то полезно.

1
27.01.2020, 21:56

Теги

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