2009-04-14 6 views
4

Je suis à la recherche d'une application qui fonctionne comme un processus d'arrière-plan et détecte quand une application (disons, Safari) joue de l'audio. Je peux utiliser NSWorkspace pour obtenir les ID de processus des applications en cours d'exécution, mais je ne sais pas comment détecter ces processus. Je suppose qu'il existe un moyen d'écouter un processus et de détecter les messages publics que les objets envoient. Je m'excuse pour mon ignorance à ce sujet.Utilisation de Cocoa pour détecter quand une application en cours lit l'audio

Est-ce que quelqu'un a essayé quelque chose comme ceci ou est conscient des ressources qui peuvent aider?

Répondre

1

J'ai été informé sur un autre sujet que, bien que cela soit possible, c'est une technique extrêmement avancée et non recommandée. Cela impliquerait d'utiliser Application Enhancer (APE) et est considéré comme une chose pas «gentil» à faire. On dirait que cette idée d'application est destinée au grand bac de recyclage dans le ciel :)

2

SoundFlower est un projet Open Source qui permet aux applications Mac OS X de transmettre de l'audio les unes aux autres. Il fait presque certainement quelque chose de semblable à ce que vous décrivez.

+0

Cool, j'utilise SoundFlower mais j'ai complètement oublié son être open source. Merci pour cette info. –

1

Je ne pense pas que votre « réponse » est une réponse à tout ...

et il y a une réponse (qui n'est pas "42")

votre meilleur pari pour ce faire serait d'écrire un périphérique de sortie audio pass-through. Tout comme la soundflower, en fait. Votre périphérique de sortie audio charge alors le périphérique de sortie audio (physique) réel et transmet directement les données audio (après avoir d'abord regardé le flux audio!). Il vous suffit ensuite de convaincre vos utilisateurs de configurer votre périphérique audio en tant que périphérique de sortie audio par défaut afin que la majorité des applications qui utilisent le son l'utilisent automatiquement. et voila ...

votre fonction de traitement audio effectuera probablement un RMS rapide sur le tampon avant de le transmettre au périphérique de sortie réel. et quand la puissance audio franchit un certain seuil (probablement quelque chose comme -54dB avec le matériel audio Apple), alors vous savez que certaines applications font du son.

| K <

Questions connexes