How do I record audio with C#/WPF?

前端 未结 4 1480
醉话见心
醉话见心 2020-12-08 12:32

I have an application to which I want to add the ability to import small audio snippets directly from a microphone device of some sort.

I already allow importing of

相关标签:
4条回答
  • 2020-12-08 12:50

    this might help. It will use open source NAuodio project...

    http://channel9.msdn.com/coding4fun/articles/NET-Voice-Recorder

    :)

    0 讨论(0)
  • 2020-12-08 13:01

    Probably the easiest is to use mciSendString function:

    public class Program
    {
        [DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
        private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);
    
        static void Main(string[] args)
        {
            mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
            mciSendString("record recsound", "", 0, 0);
            Console.WriteLine("recording, press Enter to stop and save ...");
            Console.ReadLine();
    
            mciSendString("save recsound c:\\work\\result.wav", "", 0, 0);
            mciSendString("close recsound ", "", 0, 0);
        }
    }
    

    Another option is to use the DirectShowNet library (there's a sample called PlayCap).

    You might also find this CodeProject article useful.

    0 讨论(0)
  • 2020-12-08 13:03

    mciSendString function records only microphone sound. if no mic is connected it will record nothing.

    0 讨论(0)
  • 2020-12-08 13:08

    I'm using the this library: http://www.codeproject.com/KB/cs/Streaming_wave_audio.aspx Mainly due to the simple api. But I don't like this code too much. For example it fixes it's buffers in memory for a long time instead of allocating unmanaged buffers.

    0 讨论(0)
提交回复
热议问题