середа, 5 червня 2013 р.

Как автоматически выключать музыку при звонке?

По умолчанию, в 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.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments