LINUX.ORG.RU

wireplumber не воспроизводит звук

 , ,


0

2

Здравствуйте. Такая проблема. Вайрпламбер не подхватывает сессии из Steam. Если воспроизвожу музыку через телеграм, то все играет. Если запускаю игру то там не играет, даже если выключил звук в телеграм он все равно там не подхватывает звук.

Арч линукс, jack-pipewire, wireplumber

Ответ на: комментарий от Jameson

Спасибо большое (:

А как это починить более глобально? Может пульсой пользоваться? Или вместо вайрпламбера что-то использовать? Когда открываю гуишку вайрпламбера и запускаю музыку из телеграм, например, он видет аутпут из телеги и кидает его на 3.5 интерфейс

NorthernBlow
() автор топика
Ответ на: комментарий от NorthernBlow

Я не понимаю о чём ты. Я не знаю что такое «гуишка вайрплумбера» и что куда у тебя кидает.

Я знаю что протон в стим выводит звук через libSDL2 и по умолчанию использует драйвер pulseaudio. Обычно pipewire сервер принимает клиентов pulseaudio как родных, так как имитирует pulseaudio сервер, и всё работает без объявления всяких переменных. Но у тебя почему то это не так, почему я не знаю.

Свежий libSDL уже умеет напрямую играть в pipewire, для этого мы и говорим ему с помощью переменной что желаем использовать нужный драйвер. Можно эту переменную и глобально объявить, чтобы руками каждый раз не прописывать для каждой игры, но это не очень правильно, так как многие игры носят с собой свою старую версию libSDL, которая ничего о pipewire не знает. Так как она при этом ещё и на запасные варианты отказываться не умеет — игра просто крашнется, если увидит звуковой драйвер в который не умеет. Так что самый безопасный способ делать как я сказал — прописывать переменную каждой игре в которую играешь в свойствах.

Jameson ★★★★★
()

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

Откатываться к чистому pulseaudio не нужно я думаю, так как pipewire сам по себе работает так чтобы вести себя в точности как pulseaudio для софта ничего про pipewire не знающего. Возможно jack-pipewire эту совместимость ломает как раз.

Jameson ★★★★★
()

jack-pipewire нужен ТОЛЬКО для проф. аудио приложений. Тебе нужен pipewire-pulse. Это и есть замена пульсе и видится пульсоприложениям натуральным образом.

И pipewire-alsa поставь.

R_He_Po6oT ★★★★
()
Последнее исправление: R_He_Po6oT (всего исправлений: 1)
Ответ на: комментарий от NorthernBlow

Wireplumber - это не есть всё. pipewire-pulse, pipewire-alsa и pipewire-jack - это его части, которые нужно ставить, чтобы заиметь такие-то возможности. Если ты умудрился поставить только pipewire и pipewire-jack, то sdl просто такого не предвидел. Поставь недостающее и всё заработает само.

R_He_Po6oT ★★★★
()
Ответ на: комментарий от NorthernBlow

pipewire-pulse — позволяет серверу pipewire изображать из себя сервер pulseaudio для приложений не умеющих в pipewire напрямую (т.е. практически для всех, так как единственное умеющее в pipewire напрямую приложение (точнее библиотека) которое у меня на компе есть — libSDL2.

pipewire-alsa — позволяет старым унаследованным приложениям, написанным до pulseaudio и умеющим играть только напрямую в alsa играть в pipewire, думая что это alsa. То есть это такая «обманка» для старого софта, притворяющаяся интерфейсом звуковой карты и скрытно перенаправляющая звук в pipewire. Скорее всего у тебя таких и нет, но пакет поставь, на всякий случай. (Pipewire не отменяет и не заменяет ALSA, это разные вещи. Грубо говоря ALSA это «драйвер» звуковой карты, а pipewire работающий поверх него звуковой сервер).

pipewire-jack — позволяет серверу pipewire изображать из себя сервер jack для клиентов умеющих в jack. Это штука для профессионального звука и музыкантов, если ты не знаешь что такое jack и зачем он конкретно тебе нужен — он тебе не нужен, можешь удалить.

wireplumber — сервис (сервер, демон) непосредственно переключающий и управляющий потоками звука и видео через pipewire, отвечает за всю автоматику.

Jameson ★★★★★
()
Ответ на: комментарий от NorthernBlow

В арче эту срань теперь не выпилить, так как (почему-то) прописана как принудительная зависимость для pipewire-pulse. Лечится пересборкой группы пакетов.

https://bugs.archlinux.org/task/75285

Впрочем, если оно работает нормально, зачем выпиливать.

xDShot ★★★★★
()
Ответ на: комментарий от xDShot

Так и понятно, разработчики сразу говорили, что wireplumber станет неотъемлемой частью pipewire. До того как он был готов всё ещё имело смысл пользоваться старым media-session. Его и сейчас можно заменить, но не выпилить совсем потому что тогда управлять будет некому. Или wireplumber, или media-session.

R_He_Po6oT ★★★★
()
Ответ на: комментарий от xDShot

Впрочем, если оно работает нормально, зачем выпиливать.

У меня эта поделка (wireplumber) адски глючит. Иногда звук на монитор по hdmi отправляет без спроса. После звонка через teams начинается жор одного ядра ЦП на 100% пока не перезапустишь pipewire сервис. Зачем это говно запилили вместо божественного pipewire-media-session?

ox55ff ★★★★★
()