Как разделить порты в источнике на отдельные источники в PulseAudio?

Если мы работаем в bash, нам не нужно использовать индексы

#!/bin/bash
read N 
read -a A
for elem in "${A[@]::N}"; do
    ((ar_sum+=$elem))
done
echo $ar_sum

for-loop можно заменить на

expr $(printf '%b + ' "${A[@]::N}"\\c)
3
14.07.2017, 15:20
2 ответа

У вас есть только два аналого-цифровых преобразователя (Узлы аудиовхода ), называемые ALSA «ALC887 -VD Analog» и «ALC887 -VD Alt Analog». Таким образом, лучшее, чего вы можете добиться с точки зрения программного обеспечения, — это два источника, где вам придется вручную переключать порты для обоих (, как вы делаете сейчас для одного источника ). Это не так просто настроить, вам нужно возиться с профилями и путями в /usr/share/pulseaudio/alsa-mixer/profile-sets/, а также вручную выгружать и загружать модули Pulseaudio. Я поиграл с ним в своей системе, и у меня до сих пор нет удовлетворительной конфигурации.

Однако, если вашей целью является «Я хочу подключить аппаратные аудиовходы к аппаратным аудиовыходам (наушники )» вместо «Мне нужно несколько источников Pulseaudio, чтобы я мог закольцовывать в Pulseaudio любые приемники», вы можно просто использовать аппаратные микшеры (это, вероятно, то, что вы делали в Windows 7 и xfce4 -микшер ).

Поэтому используйте alsamixerили amixerили аналогичную программу для управления настройками аппаратного замыкания на себя, и она должна работать так же, как и раньше.

1
27.01.2020, 21:30

Кажется, я нашел решение вашего вопроса здесь . Идея заключается в следующем:

  1. Получить список доступных звуковых карт и входов ALSA:

    $ arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 1: Generic [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog]
      Subdevices: 0/1
      Subdevice #0: subdevice #0
    card 1: Generic [HD-Audio Generic], device 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
      Subdevices: 0/1
      Subdevice #0: subdevice #0
    

    и обратите внимание на номера карт и устройств (в моем примере выше естьcard 1и два устройства ввода:device 0иdevice 2).

  2. Если у вас нет файла конфигурации PulseAudio для -пользователя, сделайте копию:

    cp /etc/pulse/default.pa ~/.config/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-source device=hw:1,0
    #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:1,0 name="ALSAOutput"
    load-module module-alsa-source device=hw:1,0 name="ALSASource1" source_properties=device.description="ALSASource1"
    load-module module-alsa-source device=hw:1,2 name="ALSASource2" source_properties=device.description="ALSASource2"
    
    
    ### Automatically load driver modules depending on the hardware available
    #.ifexists module-udev-detect.so
    #load-module module-udev-detect
    #.else
    ### Use the static hardware detection module (for systems that lack udev support)
    #load-module module-detect
    #.endif
    

    В этих строках вы должны отредактировать параметр device=hw:1,0в соответствии с вашей конфигурацией. Здесь первая цифра — это номер карты , а вторая — номер устройства , который вы должны запомнить из предыдущего шага.

    Обратите внимание, что вы также должны закомментировать следующий раздел об автоматической загрузке драйвера с помощью udev.

  3. Перезапустите PulseAudio для вашего пользователя:

    $ systemctl --user restart pulseaudio
    

Как только вы это сделаете, в pavucontrolвы увидите одно устройство вывода и два независимых устройства ввода:

enter image description here

enter image description here

Обратите внимание, что устройства ввода в pavucontrolимеют имена, которые мы присвоили им в нашем файле конфигурации выше (параметраsource_properties=device.description="ALSASource1"). Это удобный способ присвоить устройствам отличительные имена.

  1. Затем, чтобы иметь возможность использовать эти входы, вы должны фактически назначить соответствующие источники звука для каждого из входов ALSA.Для этого я предлагаю вам запустить alsamixerв вашей консоли, выбрать звуковую карту, нажав F6, затем нажать F4, чтобы переключиться на вкладку «Захват» и назначить необходимые входы, как это:

enter image description here

В моем примере я выбрал Line inв качестве первого входа и Front Micв качестве второго входа.

Также следует убедиться, что эти два устройства захвата включены. Чтобы включить их, просто переключитесь на элементы управления Captureи Capture 1с помощью клавиш со стрелками влево/вправо и нажмите пробел. Вы увидите красное слово 'CAPTURE ', когда устройство ВКЛЮЧЕНО .

Итак, на данный момент у вас есть два порта одного устройства, разделенные на два отдельных устройства в PulseAudio, а затем вы можете делать с ними все, что хотите, используя pavucontrolпо-прежнему. Например, чтобы соединить сигнал от этих двух источников, вы можете использовать этот рецепт .

Чтобы отменить все эти изменения, вы можете отредактировать файл ~/.config/pulse/default.pa, закомментировав новые строки и раскомментировав старые. Или вы можете просто удалить этот файл. Затем снова перезапустите PulseAudio.

П.С. Я считаю, что должен быть более разумный способ сделать это (, например, путем создания пользовательского профиля устройства для PulseAudio ), но я не знаком с этим. Может тут еще кто подскажет.

0
19.04.2021, 08:38

Теги

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