5 Stimmen

Cocoa verwenden, um zu erkennen, wann eine laufende Anwendung Audio abspielt

Ich möchte eine Anwendung schreiben, die als Hintergrundprozess läuft und erkennt, wenn eine Anwendung (z. B. Safari) Audio abspielt. Ich kann verwenden NSWorkspace um die Prozess-IDs der derzeit laufenden Anwendungen zu erhalten, aber ich bin ratlos, wenn es darum geht, zu erkennen, was diese Prozesse tun. Ich nehme an, dass es eine Möglichkeit gibt, einen Prozess abzuhören und herauszufinden, welche öffentlichen Nachrichten die Objekte senden. Ich entschuldige mich für meine Unwissenheit zu diesem Thema.

Hat jemand so etwas schon einmal versucht oder kennt jemand Ressourcen, die dabei helfen können?

2voto

Matt K Punkte 12783

SoundFlower ist ein Open-Source-Projekt, das es Mac OS X-Programmen ermöglicht, Audiosignale an andere Programme weiterzugeben. Es tut mit ziemlicher Sicherheit etwas Ähnliches wie das, was Sie beschreiben.

2voto

rock711 Punkte 351

In einem anderen Thread wurde ich darüber informiert, dass dies zwar möglich ist, aber eine extrem fortgeschrittene Technik ist und nicht empfohlen wird. Es würde die Verwendung von Application Enhancer (APE) und wird als nicht "nett" angesehen. Es sieht so aus, als ob diese App-Idee für den großen Papierkorb im Himmel bestimmt ist :)

2voto

kent Punkte 5725

Ich glaube nicht, dass Ihre "Antwort" überhaupt eine Antwort ist...

und es GIBT eine Antwort (die nicht "42" lautet)

Die beste Möglichkeit, dies zu tun, wäre, ein Pass-Through-Audioausgabegerät zu schreiben. Ähnlich wie soundflower, eigentlich. so dass Ihre Audio-Ausgabegerät würde dann laden Sie die tatsächliche (physische) Audio-Ausgabegerät und leiten die Audiodaten entlang, um es direkt (nach einem ersten Blick auf die Audio-Stream, natürlich!). dann müssen Sie nur Ihre Benutzer zu überzeugen, Ihre Audio-Gerät als Standard-Audio-Ausgabe-Gerät zu konfigurieren, so dass die Mehrheit der Anwendungen, die Ton spielen wird es automatisch verwenden. und voila...

Ihre Audioverarbeitungsfunktion wird wahrscheinlich nur eine schnelle RMS auf den Puffer vor der Weitergabe an das eigentliche Ausgabegerät. und wenn die Audioleistung einen bestimmten Schwellenwert überschreitet (wahrscheinlich so etwas wie -54dB mit Apple-Audio-Hardware), dann wissen Sie, dass einige app macht Ton.

|K<

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X