2010-05-17 17 views
10

Sto provando a registrare i dati audio da un microfono (o line-in), e quindi rieseguirli di nuovo, usando C#.Ottenere dati da un microfono in C#

Qualche suggerimento su come posso raggiungere questo obiettivo?

+0

possibile duplicato [accesso gestito all'ingresso microfono e volume di sistema] (http://stackoverflow.com/questions/1191613/managed-access-to-microphone-input-and- system-volume) –

+7

Potresti dirci perché ti senti in dovere di essere sarcastico nel mostrare che hai trovato una ricerca che funziona, soprattutto perché "C#" è un termine inutile in molti motori di ricerca? –

+0

Di proprietà. Solo dicendo xD –

risposta

3

Vedi Console and multithreaded recording and playback

class Program 
{ 

    static void Main(string[] args) 
    { 
     rex.Data += new RecorderEx.DataEventHandler(rex_Data); 
     rex.Open += new EventHandler(rex_Open); 
     rex.Close += new EventHandler(rex_Close); 
     rex.Format = pcmFormat; 
     rex.StartRecord(); 
     Console.WriteLine("Please press enter to exit!"); 
     Console.ReadLine(); 
     rex.StopRecord(); 
    } 

    static RecorderEx rex = new RecorderEx(true); 
    static PlayerEx play = new PlayerEx(true); 
    static IntPtr pcmFormat = AudioCompressionManager.GetPcmFormat(1, 16, 44100); 

    static void rex_Open(object sender, EventArgs e) 
    { 
     play.OpenPlayer(pcmFormat); 
     play.StartPlay(); 
    } 

    static void rex_Close(object sender, EventArgs e) 
    { 
     play.ClosePlayer(); 
    } 

    static void rex_Data(object sender, DataEventArgs e) 
    { 
     byte[] data = e.Data; 
     play.AddData(data); 
    } 
}