Programmgesteuertes Auflisten von Prozessen, die derzeit die Standard-Soundausgabe unter Mac OS 10.6 verwenden

9

Ich würde gerne wissen, ob es einen programmatischen Weg gibt (öffentliche API, Terminalkommando, AppleScript, etc.), um alle Prozesse, die gerade Ton abspielen, über die Standard-Soundausgabe in Mac OS 10.6 aufzulisten?

Ich habe bereits versucht, mit dem Terminalbefehl "lsof | grep -i coreaudio" Prozesse mit einem Handle auf Core Audio aufzulisten, aber das sagt mir nicht, ob diese Prozesse gerade Sound ausgeben; Sie könnten zuvor schon Töne ausgegeben haben oder sie beabsichtigen es in Zukunft.

Wenn ich beispielsweise Google Chrome öffne, wird es zunächst nicht aufgelistet, wenn ich den Befehl lsof verwende. Wenn ich dann ein Video auf Youtube lade, wird es mit Core Audio verbunden, so dass es aufgelistet wird. Aber wenn ich mit dem Video fertig bin, selbst wenn ich das Browserfenster vollständig schließe, wird es immer noch als mit dem Treiber verbunden aufgelistet, obwohl es offensichtlich keinen Ton mehr gibt. Es hört nur auf, aufgelistet zu werden, wenn ich den Prozess beende.

Beachten Sie, dass ich, obwohl ich eine langwierige Programmiererfahrung in C ++ auf Windows-Plattformen habe und die Windows-API sehr gut kenne, ziemlich neu in der Programmierung von Mac OS bin, also bitte verstehen, wenn ich etwas Offensichtliches vermisse.

Danke, François Charron

    
franmon 25.05.2011, 04:36
quelle

1 Antwort

-1

Ich weiß, dass dieser Beitrag ziemlich alt ist, aber er hat einige Stimmen, so dass die Leute über Suchanfragen darauf stoßen könnten.

Ich bin mir ziemlich sicher, dass dies nicht möglich ist, es sei denn, Sie schreiben ein CoreAudio-Plug-In, das in jeden Prozess integriert wird, der CoreAudio verwendet. Die Arbeit ist der Erstellung einer Mac-Version des Windows Volume Mixers sehr ähnlich.

Es gibt eine Open-Source-Implementierung von diesem ( Ссылка ), obwohl es nicht gepflegt wird und ich nicht viel Glück gehabt habe es zu bauen. Es gibt auch proprietäre Lösungen wie Prosoft Engineering Hear, die in der Lage sein sollten, dies zu tun, aber ich denke nicht, dass sie eine API zur Abfrage bieten.

Hinweis: Ich habe MuteTab erstellt, das versucht, das gleiche in einem Browser (vor Änderungen in Flash und der Einführung von Audio-Indikatoren) zu tun und habe mute.fm (Windows) gebaut, die dies ebenso wie eine Fähigkeit benötigen würde kontrolliere die Volumes, wenn ich sie portiert habe, um mit OSX zu arbeiten.

    
Jared Sohn 18.09.2013, 07:06
quelle

Tags und Links