Domanda

Come sarebbe possibile catturare l'audio a livello di codice? Sto implementando un'applicazione che trasmette in tempo reale il desktop sulla rete. La parte video è terminata. Devo implementare la parte audio. Ho bisogno di un modo per ottenere i dati PCM dalla scheda audio per alimentare il mio codificatore (implementato utilizzando il formato Windows Media).

Penso che la risposta sia correlata alle funzioni openMixer (), waveInOpen () nell'API Win32, ma non sono sicuro esattamente cosa dovrei fare.

Come aprire il canale necessario e come leggere i dati PCM da esso?

Grazie in anticipo.

È stato utile?

Soluzione

Non penso che ci sia un modo diretto per farlo usando il sistema operativo - è una funzione che può (o non può) essere presente sulla scheda audio. Alcune schede audio hanno un'interfaccia loopback: Creative la chiama "What U Hear". Basta selezionarlo come input anziché come microfono e registrare da esso usando la normale waveInOpen () di cui già si conosce.

Se la scheda audio non ha questa funzione, penso che tu sia sfortunato se non facendo qualcosa di folle come creare il tuo driver. Oppure potresti convincere i tuoi utenti a far passare un cavo dall'uscita degli altoparlanti all'ingresso di linea :)

Altri suggerimenti

Le nuove API audio Core di Windows Vista hanno il supporto esplicito per questo (chiamato Loopback Recording), quindi se riesci a vivere con un'applicazione Vista solo questa è la strada da percorrere.

Vedi l'articolo Registrazione di loopback su MSDN per istruzioni su come farlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top