Как с помощью WirePlumber в Fedora 35 отключить приостановку приема звука при простое, чтобы звук не задерживался при запуске воспроизведения?

Очень простым подходом к этому было бы использование утверждения bashselect; не нужно ничего устанавливать (еще ). Вот пример, который мне только что попался:

#!/bin/bash

[...]

sourceBranch=
targetBranch=
# Force one option per line
columnsBackup=${COLUMNS}
COLUMNS=40

echo "Select source and target branch:"
select branches in \
    "testing -> release-candidate" \
    "release-candidate -> stable-release" \
    "stable-release -> stable"
do
    if [ -z "${branches}" ]; then
        echo "Invalid selection"
        continue
    fi

    sourceBranch="${branches%% -> *}"
    targetBranch="${branches##* -> }"
    break
done

COLUMNS=${columnsBackup}
echo "Releasing from ${sourceBranch} to ${targetBranch}"

[...]

Выход:

Select source and target branch:
1) testing -> release-candidate
2) release-candidate -> stable-release
3) stable-release -> stable
#? 1   
Releasing from testing to release-candidate

Вместо этого вы, вероятно, будете выполнять некоторую case... esacобработку в блоке do... done.

1
10.11.2021, 05:21
1 ответ

Соответствующий файл конфигурации — /usr/share/wireplumber/main.lua.d/50-alsa-config.lua, но не редактируйте его системную версию!

Вам необходимо скопировать его в/etc/wireplumber/main.lua.d/(глобальную конфигурацию )или~/.config/wireplumber/main.lua.d/(пользовательскую конфигурацию )и внести необходимые изменения.

Самый простой способ — скопировать его в папку глобальной конфигурации, чтобы он применялся ко всем учетным записям пользователей.:

sudo cp -a /usr/share/wireplumber/main.lua.d/50-alsa-config.lua /etc/wireplumber/main.lua.d/50-alsa-config.lua
sudo nano /etc/wireplumber/main.lua.d/50-alsa-config.lua

Затем вам нужно прокрутить файл вниз до раздела apply_propertiesи добавить туда строку с надписью:

["session.suspend-timeout-seconds"] = 0

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

alsa_monitor.properties = {
  ["alsa.jack-device"] = true,
  ["alsa.reserve"] = true,
  ["alsa.midi.monitoring"] = true
}

alsa_monitor.rules = {
{
    matches = {
      {
        { "device.name", "matches", "alsa_card.*" }
      }
    },
    apply_properties = {
      ["api.alsa.use-acp"] = true,
      ["api.acp.auto-profile"] = false,
      ["api.acp.auto-port"] = false
    }
  },
  {
    matches = {
      {
        { "node.name", "matches", "alsa_output.pci-0000_0c_00.4.iec958-ac3-surround-51" }
      }
    },
    apply_properties = {
      ["api.alsa.period-size"] = 128,
      ["api.alsa.headroom"] = 2048,
      ["session.suspend-timeout-seconds"] = 0
    }
  },
  { 
    matches = {
      {
        { "node.name", "matches", "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.analog-mono" }
      }
    },
    apply_properties = {
      ["api.alsa.period-size"] = 128
    }
  }
}

Установка для свойства session.suspend-timeout-secondsзначения 0предотвращает поведение приостановки/сна. Это полностью отключает поведение, как видно из исходного кода WirePlumber.

WirePlumber необходимо перезапустить, чтобы изменения вступили в силу:

systemctl --user restart wireplumber
5
11.11.2021, 03:24

Теги

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