По дорозі java, linux і open source skype 4

Після "лікування" системи від PulseAudio залишилася тільки одна проблема - непрацюючий Skype. В інтернетах відразу знайшов рада використовувати емулятор PulseAudio для ALSA - apulse. Нормальний такий робочий милицю. Один з варіантів настройки apulse полягає в створенні файлу

/.asoundrc. У мене він, наприклад, такого змісту:

Де "hw: 1,0" і "hw: 3,0" це ALSA-ідентифікатори пристроїв відтворення і захоплення звуку, відповідно. Але такий підхід виявився не дуже зручним, тому що в комп'ютері у мене одночасно було 2 пристрої відтворення і 3 пристрої захоплення звуку. І якщо ID основного пристрою для виведення звуку опинявся завжди "hw: 1,0", то потрібний пристрій захоплення періодично виявлялося то з ID "hw: 3,0", то "hw: 2,0". Ну і, ясна річ, щоб Skype почав отримувати звук з правильного пристрою, треба було поміняти його ID у файлі .asoundrc і після цього перезапустити Skype через apulse:

Напевно, можна прибити цвяхами все ID до відповідних звукових пристроїв через UDEV, але якось мені завжди лінь "лазити через Google" в його конфіги. Тому пропоную більш простий і універсальний варіант динамічної настройки apulse.

Він ґрунтується на тому, що вказати пристрої для apulse можна за допомогою встановлених змінних оточення APULSE_PLAYBACK_DEVICE і APULSE_CAPTURE_DEVICE. А за допомогою програм aplay і arecord можна легко висмикнути циферки, які присвоєні вашим звукових пристроїв.


Наприклад, ось мій висновок команди aplay -l:

Цікавить мене пристрій виведення називається ALC1150 Analog. Команда play -l каже що йому присвоєно ідентифікатори card 1 і device 0. З цих поєднань в моєму випадку треба сформувати ім'я "hw: 1,0". В інших дистрибутивах ім'я може будуватися трохи по-іншому, наприклад, "plughw: 1,0".

Таким чином, все що треба зробити це висмикнути циферки, призначені пристроїв відтворення і захоплення, сформувати для них валідниє ALSA-ідентифікатори і записати їх у відповідні змінні оточення. Автоматизувати цю процедуру можна додаванням наступних рядків в ваш файл

/.profile, який буде виконуватися при кожному вході в систему під вашим ім'ям:

Тільки потрібно поміняти значення змінних PLAY_DEV_NAME і REC_DEV_NAME на імена ваших пристроїв.

Схожі статті