Как программно перечислить процессы, в настоящее время использующие вывод звука по умолчанию в Mac OS 10. 6

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

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

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

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

Спасибо, François Charron

9
задан franmon 25 May 2011 в 04:36
поделиться