Vorrei aggiungere una richiamata di rendering in uscita tramite AudioUnitAddRenderNotify
sull'unità RemoteIO attualmente attiva che sta emettendo l'audio agli altoparlanti. Non ho accesso all'effettiva variabile di istanza RemoteIO, ma mi piacerebbe avere un elenco di unità audio nell'app e trovare l'unità RemoteIO in questo modo. È possibile?È possibile elencare tutte le unità audio RemoteIO attualmente presenti nell'applicazione?
risposta
Se è possibile ottenere accesso al AUGraph
allora questo è possibile. Secondo lo AUGraph documentation ci sono un paio di metodi che potrebbero aiutarti.
AUGraphGetNodeCount
- per ottenere il numero di nodi in un grafico AUGraphGetIndNode
- per ottenere un nodo indicizzato AUGraphNodeInfo
- per ottenere informazioni su un nodo
Una volta che hai avuto il nodo corretto si potrebbe ottenere l'unità remoteIO e aggiungere la tua richiamata. Ottenere l'accesso allo AUGraph
è in realtà il vero problema.
Un consiglio, grazie! Probabilmente questo sarà il più vicino possibile a chiunque arrivi alla risposta – kevlar
Grazie. trovi un modo per accedere all'AUGRAFO Mi piacerebbe sapere come hai fatto, è un po 'un santo graal, perché permetterebbe accedere a openAL per salvare l'output o aggiungere effetti che sarebbero fantastici. –
C'è un solo RemoteIO. Non ho mai provato a puntare il dito su di esso pur non essendo quello per "crearlo". perché non provare qualcosa di simile, si dovrebbe ottenere un puntatore al RemoteIO:
OSStatus status;
AudioComponentInstance audioUnit;
// Describe audio component
AudioComponentDescription desc;
desc.componentType = kAudioUnitType_Output;
desc.componentSubType = kAudioUnitSubType_RemoteIO;
desc.componentFlags = 0;
desc.componentFlagsMask = 0;
desc.componentManufacturer = kAudioUnitManufacturer_Apple;
// Get component
AudioComponent outputComponent = AudioComponentFindNext(NULL, &desc);
// Get audio units
status = AudioComponentInstanceNew(outputComponent, &audioUnit);
checkStatus(status);
Grazie per la risposta. Sono abbastanza sicuro che facendo quello che suggeriscono sarà un'istanza di una nuova istanza * * di un'unità audio RemoteIO. – kevlar
hmmm sì testati dopo ce n'era già stato creato, speravo di farlo di nuovo, avrei solo restituito un puntatore al primo creato, la cosa divertente è che il codice risultato restituisce 0 ma l'outInstance non punta a nulla, quindi suppongo che non funzioni. –
Sono abbastanza sicuro che ci possano essere più AUGRAPH in esecuzione nella stessa app –
Domanda interessante: com'è che non si ha accesso alla variabile di istanza? Viene creato in una libreria statica o qualcosa del genere? –
Anche curioso di sapere una soluzione. Nel mio caso particolare, è gestito dall'implementazione fmod sottostante di Unity3d, a cui non ho accesso. –
Stai cercando di prendere l'output di openAL? –