Как программно составить список процессов, в настоящее время использующих вывод звука по умолчанию в Mac OS 10.6 - PullRequest
9 голосов
/ 25 мая 2011

Я хотел бы знать, существует ли программный способ (общедоступный API, команда терминала, AppleScript и т. Д.), Чтобы вывести список всех процессов, воспроизводящих звук в данный момент, через стандартный вывод звука в Mac OS 10.6?

Iуже пытался использовать команду терминала "lsof | grep -i coreaudio" для вывода списка процессов, имеющих дескриптор в Core Audio, но это не говорит мне, выводят ли эти процессы звук в данный момент;они могли выводить звук раньше или намерены сделать это в будущем.

Например, если я открою Google Chrome, сначала его нет в списке при использовании команды lsof.Затем, если я загружаю видео на Youtube, оно подключается к Core Audio, и оно попадает в список.Но когда я закончу с видео, даже если я закрою окно браузера полностью, оно по-прежнему будет отображаться как подключенное к драйверу, даже если оно больше не воспроизводит звук.Он перестает быть перечисленным только после того, как я выйду из процесса.

Обратите внимание, что, имея длительный опыт программирования на C ++ на платформах Windows и хорошо зная Windows API, я довольно плохо знаком с программированием на Mac OS, поэтому, пожалуйста,будь понимающим, если я пропущу что-то очевидное.

Спасибо, Франсуа Шаррон

1 Ответ

0 голосов
/ 18 сентября 2013

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

Я почти уверен, что это невозможно, если вы не напишите плагин CoreAudio, который будет встроен в каждый процесс, использующий CoreAudio. Работа очень похожа на создание Mac-версии Windows Volume Mixer.

Существует реализация с открытым исходным кодом (https://github.com/zonque/PulseAudioOSX), хотя она не поддерживается, и мне не очень повезло в ее создании. Есть также проприетарные решения, такие как Prosoft Engineering Hear, которые должны быть в состоянии чтобы сделать это, но я не думаю, что они предоставляют API для запроса.

Примечание. Я создал MuteTab, который пытается сделать то же самое в браузере (до изменений во Flash и введения звуковых индикаторов), и создал mute.fm (Windows), который бы нуждался в этом, а также возможность контролировать громкость, если я перенес его на работу на OSX.

...