web-dev-qa-db-fra.com

Enregistrement audio C # depuis la carte son

Je veux enregistrer le son de ma carte son (sortie). J'ai trouvé CSCore sur codeplex mais je n'ai trouvé aucun exemple. Quelqu'un sait-il comment utiliser la bibliothèque pour enregistrer du son depuis ma carte son et écrire les données d'enregistrement sur le disque dur? Ou quelqu'un connaît-il quelques tutoriels sur cette bibliothèque?

18
user2741085

Jetez un oeil à espace de noms CSCore.SoundIn . La classe WasapiLoopbackCapture est capable d'enregistrer directement depuis n'importe quel périphérique de sortie. Mais gardez à l'esprit que WasapiLoopbackCapture n'est disponible que depuis Windows Vista.

EDIT: Ce code devrait fonctionner pour vous.

using CSCore;
using CSCore.SoundIn;
using CSCore.Codecs.WAV;

...

using (WasapiCapture capture = new WasapiLoopbackCapture())
{
    //if nessesary, you can choose a device here
    //to do so, simply set the device property of the capture to any MMDevice
    //to choose a device, take a look at the sample here: http://cscore.codeplex.com/

    //initialize the selected device for recording
    capture.Initialize();

    //create a wavewriter to write the data to
    using (WaveWriter w = new WaveWriter("dump.wav", capture.WaveFormat))
    {
        //setup an eventhandler to receive the recorded data
        capture.DataAvailable += (s, e) =>
            {
                //save the recorded audio
                w.Write(e.Data, e.Offset, e.ByteCount);
            };

        //start recording
        capture.Start();

        Console.ReadKey();

        //stop recording
        capture.Stop();
    }
}
34
Florian