Dai un'occhiata all'open source WavTap, che è un fork semplificato del driver della scheda audio virtuale open source SoundFlower. È un .kext che credo faccia sostanzialmente quello che vuoi.
Per riferimento, ecco come alcune opzioni closed-source commerciali popolari funzionano: audio Audio Hijack Pro
-Captures sistema
Rogue Amoeba di via codice in base al largo della open-source Soundflower .kext
-Captures un'applicazione di audio sostituendo un quadro "patch" per la CoreAudio.framework normale quando si lancia l'applicazione
-Captures audio di un'applicazione già in esecuzione, con l'aiuto del haxie "Application Enhancer" (APE) da Unsanity
Queste funzionalità sono contrassegnate come la loro funzione "Instant On" (InstantOn.kext). WireTap Studio
-Captures sistema audio e l'applicazione audio
Ambrosia Software tramite un in-house sviluppato .kext ScreenFlow
-Captures audio sistema
Telestream 's tramite un in-house developed .kext. (versione 2.x utilizza varaudio .kext; Versione 3.x utilizza TelestreamAudio.kext)
Macsome Audio Recorder sistema
-Captures audio -Sconosciuto metodo
Araelium del Gruppo utilizzando il Soundflower .kext
UPDATE # 1
Dopo aver letto commenti dell'autore, sembra l'obiettivo di fondo è quello di essere in grado di acquisire il suono del sistema senza pubblicare il driver audio virtuale come dispositivo (che appare nell'elenco delle preferenze di sistema) e senza modifica del dispositivo di output predefinito corrente (o almeno l'aspetto del dispositivo è cambiato).
Soundflower: Aggiunge un dispositivo audio alla lista al momento dell'installazione
WavTap: Aggiunge un dispositivo audio alla lista al momento dell'installazione; seleziona automaticamente il dispositivo all'avvio dell'applicazione WavTap; deseleziona automaticamente il dispositivo quando l'applicazione viene arrestata e riseleziona il dispositivo precedente
Audio Hijack Pro: Aggiunge un dispositivo audio solo quando è selezionata l'acquisizione audio del suono di sistema predefinito; rimuove il dispositivo audio quando cattura audio non è più selezionata e riseleziona il dispositivo precedente
WireTap Studio: Unknown
ScreenFlow: cattura il suono sistema senza modificare il dispositivo di output predefinito corrente e senza pubblicare il driver audio virtuale come dispositivo
UPDATE # 2
una citazione da Jeff Moore, un ingegnere di Apple CoreAudio, in riferimento ad applicazioni come WireTap e Audio Hijack Pro:
"non ci sono le API sul sistema che ti darà l'output di qualsiasi app specifica o l'intero mix che va all'hardware ... [Capturing System Sound] non è supportato dal sistema e quelle persone dovevano essere intelligenti. Non c'è niente che ti impedisca di fare la stessa cosa, tranne quanto sei disposto a sporcarti le mani. Il fatto è che il sistema audio di Mac OS X è stato progettato prima di tutto per le prestazioni. Questo ci ha portato a un design in cui non è facile supportare la funzionalità desiderata senza imporre sanzioni in termini di prestazioni. Così, abbiamo optato per una migliore performance a costo di non essere in grado di fornire questa funzionalità "
Se volete saperne di più su questo argomento, dai un'occhiata a queste discussioni sulla CoreAudio API mailing list:.
"WireTap, CoreAudio's API, and system capture, and kexts..."
"Another question on capturing audio played back by a software"
"Capturing currently played audio using CoreAudio on Mac"
"'audio hijack'"
"monitoring system audio output like wire tap"
"Capturing audio output to a file"
"Mirroring Audio Output"
"Recording system audio"
rilevanti SO Domande:
Hide Audio device using codeless kext
Quindi per farla breve, non sono suscettibili di trovare esempi di Apple che raggiungere questo obiettivo, e non sono suscettibili di trovare il codice open source anche questo, a meno che qualcuno si senta lo molto generoso. Sembra essere troppo prezioso per le informazioni.
Grazie per la risposta, domani darò un'occhiata a WavTap e ti faccio sapere se funziona. Apparentemente avevo già visitato il link repo di WavTap, quindi l'ho considerato una possibile soluzione, tuttavia non ricordo esattamente perché ho deciso che non era quello di cui avevo bisogno. – UpL1nK
WavTap fa la stessa cosa di SoundFlower - come in hai bisogno di riprodurre l'audio attraverso il dispositivo WavTap per ottenere l'audio. Ho bisogno di un driver virtuale simile a quello utilizzato da ScreenFlow, che consente la registrazione dell'audio senza dover scegliere un dispositivo diverso. +1 per le informazioni su come funzionano le altre opzioni commerciali, tuttavia questa non è la soluzione di cui ho bisogno. – UpL1nK
Ah, ora vedo cosa stai cercando di realizzare. Ho aggiornato la mia risposta per chiarire come funzionano le opzioni commerciali. Sembra che ScreenFlow sia in qualche modo unico in questa abilità, anche tra i suoi concorrenti. – BigMacAttack