По умолчанию, в Ubuntu и других линукс дистрибутивах, если вы слушаете музыку в проигрывателях типа Rhythmbox, Audacious и поступает звонок в приложениях типа Skype, Ekiga, SFLphone, то музыка продолжает играть, несмотря на звонок.
PulseAudio умеет паузить музыку при поступлении звонка в VoIP приложениях, но этот функционал по умолчанию отключён.
Для включения данного функционала в PulseAudio, нужно активировать два модуля PulseAudio: module-role-cork и module-augment-properties.
Для тех приложений, которые не поддерживают данную возможность PulseAudio, нужно добавить media.role в desktop файл программы, читайте об этом ниже. Rhythmbox, Banshee и Skype умеют по умолчанию, поэтому нужно только загрузить нужные модули module-role-cork и module-augment-properties.
Вам следует знать, что:
- для некоторых приложений, в которых встроена поддержка, типа Rhythmbox, Banshee музыка будет поставлена на паузу при звонке в Skype, SFLphone.
- для некоторых приложений, в которых встроена поддержка, типа Totem - звук будет отключён (mute) при звонке в любом VoIP программы.
- приложения, которые не поддерживают данный функционал, типа Audacious и Linphone - звук будет отключён (mute) при звонке.
Возможность отключить или приостановить звук не работает в веб браузерах, то есть не удасться выключить звук в ролике на YouTube.
Загрузка модулей.
Нужно только загрузить модуль module-role-cork, так как модуль module-augment-properties грузится по умолчанию в Убунту.
Ubuntu 12.10, 13.04 или новее:
pactl load-module module-role-cork
Ubuntu 12.04 или старее:
pactl load-module module-cork-music-on-phone
Данные команды загрузят модуль только на сеанс и после перезагрузки всё пропадёт. Нужно указать загрузку модулей в /etc/pulse/default.pa.
sudo -e /etc/pulse/default.pa
Найдите строку module-role-cork (или module-cork-music-on-phone) и уберите комментарий # перед строкой. Убедитесь, что строка с module-augment-properties не закомментирована. После рестарта вашего ПК, модули буду загружены.
Взаимная работа.
Skype, SFLphone, Rhythmbox и Banshee умеют работать вместе по умолчанию. То есть при звонке в Скайпе музыка заткнётся в Банши.
Если какая-либо музыкальная или видео программа не умеет работать "искаропки", то просто загляните в каталог /usr/share/applications/ и найдите там файл desktop данной программы. Измените с правами рута этот файл и добавьте в конец файла параметр X-PulseAudio-Properties=media.role=music без кавычек и других левых символов. Роль music объяснит PulseAudio, что данную программу нужно затыкать при звонке.
Для VoIP/SIP программ нужно выставить X-PulseAudio-Properties=media.role=phone и это объяснит PulseAudio, что при звуковых событиях в данной программе, нужно заткнуть все звуки в программах с media.role=music.
Для видеопроигрывателей можно указывать media.role=video, но и media.role=music тоже не плохо работает. Список других ролей типа игр и анимации такой: "video", "music", "game", "event", "phone", "animation", "production", "a11y", "test".
Предупреждение.
Идея вам может понравиться, но помните, что файлы desktop обрабатываются при запуске через Dash или Unity Launcher и не обрабатываются через командную строку, если только программа не обладает встроенной возможностью паузить свои звуковые потоки при звонке. Это умеют программы Rhythmbox и Banshee и им не нужен media.role=music в их desktop файлах.
При обновлении программы, ваши изменения в её desktop файле могут пропасть. Снова прописывать нужное может со временем поднадоесть.
Так же нужно тщательное тестирование в вашей среде, чтобы, для примера, звуковые пиликанья событий в Skype, а не его звонки, не вызывали ложного выключения звука в музыкальных проигрывателях.
Вообщем, тестирование, тестирование и ещё раз тестирование!
Звуковая тема:
Релиз звукового сервера PulseAudio 4.0.
PulseAudio эквалайзер в Ubuntu.
PulseAudio и ALSA улучшены. Меньше нагрузка CPU, лучше используются DSP.
Немає коментарів:
Дописати коментар