LINUX.ORG.RU

Как узнать идет ли вывод звука от определенного процесса


0

1

Собственно сабж. Есть pulseaudio, есть chrome с флешем, в котором смотрится кино. Нужно узнать когда кино кончится/будет поставлено на паузу.

★☆☆☆

Последнее исправление: drull (всего исправлений: 1)

Ну, могу предложить страшненький способ через ALSA. В /proc/asound/ есть файл, отражающий состояние устройства вывода (у меня /proc/asound/card0/pcm0p/sub0/status), так вот, когда в этом файле вместо параметров будет слово 'closed' — воспроизведение остановлено.

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

>> страшненький

С другой стороны, интерфейсы в /proc для того и сделаны, чтобы их использовать.

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

Хм, насчёт паузы не всё гладко. Если MPD на паузе освобождает устройство, то Audacious продолжает его удерживать.

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

Во-первых, мне мне надо точно знать от какого pid'a идет звук, т.к. я хочу во время паузы в фильмах включать музыку.
Во-вторых, у меня там постоянно state: RUNNING blablabla...

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

>> мне надо точно знать от какого pid'a идет звук

В случае чистой ALSA можно было бы выкрутиться lsof, но с pulseaudio это вряд ли получится. Вслепую могу посоветовать man pactl, в частности, команду list.

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

> Вслепую могу посоветовать man pactl, в частности, команду list.

Уже пробовал. К сожалению не помогло: хром и mocp находятся в списке клиентов даже на паузе.

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

Едва ли pulseaudio может понять, что клиент на паузе, если тот продолжает использовать соединение.

GotF ★★★★★
()

pamon выводит текущий проигрываемый поток. Его наверняка можно как-то анализировать на предмет тишины.

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

pamon выводит текущий проигрываемый поток. Его наверняка можно как-то анализировать на предмет тишины.

����0`&�N��f���&�.����▒��������E��    ��Ih��2����n�$��V������������   w�/4    ����('�H�-��� ��������_����f��������
��&����z��     F�Tb���*��c����SC��vd��\��/ �_o���+��f�������[�E�������z#v��9����(�i�����
                                                                                        �f�����H        ��������nk����o�{%/�f����*O�d����������w#������Z4�����d��s�r�+�N���������xh��(�4I�%v���`�`����������D�$���x������3\
�(�O�                                                                               ��P�m��}�ia�
����o6��Z��{��9���l7�+�
                       B�[�����������2���<;s������$��JY�W�+�|���|��7��a�����q������@�6������1���

Угу. Кроме того непонятно какой процесс выводит звук в данный момент.

drull ★☆☆☆
() автор топика
Ответ на: комментарий от hotaru

Мне важно знать идет ли в данный момент звук от одного конкретного процесса - браузера, чтобы включать/выключать музыку в плеере.

drull ★☆☆☆
() автор топика
$ fuser /dev/snd/* -v
                     ПОЛЬЗ-ЛЬ    PID ДОСТУП КОМАНДА
/dev/snd/pcmC0D0p:   kozi       1246 F...m mplayer
                     kozi       1313 F...m deadbeef-main
/dev/snd/timer:      kozi       1246 f.... mplayer
                     kozi       1313 f.... deadbeef-main
anon_666
()
Ответ на: комментарий от anon_666

>Нужно узнать когда ... будет поставлено на паузу.

Тогда не поможет(

anon_666
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.