录制媒体播放器的音频

时间:2017-08-30 22:39:55

标签: c# winforms

如何使用c#winforms录制媒体播放器的音频。

我正在尝试创建一个记录播放器(vlc)音频的应用,然后将其保存到我的电脑中。

任何想法都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

你的意思是使用你的媒体播放器?如果您只是想使用C#,只需使用 winmm.dll 库。

  1. 导入命名空间。

    使用System.Runtime.InteropServices;

  2. 声明互操作函数

    [DllImport(“winmm.dll”,EntryPoint =“mciSendStringA”,ExactSpelling = true,CharSet = CharSet.Ansi,SetLastError = true)]
    private static extern int record(string lpstrCommand,string lpstrReturnString,int uReturnLength,int hwndCallback);

  3. 开始录制

    记录(“打开新类型waveaudio Alias recsound”,“”,0,0);
       记录(“记录recsound”,“”,0,0);

  4. 停止录制并保存到文件

    记录(“保存recsound d:\ myRecordedAudioFile.wav”,“”,0,0);
       记录(“close recsound”,“”,0,0);

答案 1 :(得分:0)

您可以使用NAudio,这是一个快速示例

两个按钮录制和停止,

public WaveIn _waveIn = null;
public WaveFileWriter fileToWrite = null;
private void btn_record_Click(object sender, EventArgs e) {
    _waveIn = new WaveIn();
    _waveIn.WaveFormat = new WaveFormat(44100, 1); 
    _waveIn.DataAvailable += _waveIn_DataAvailable; // event that keep listening mic
    fileToWrite = new WaveFileWriter(@"C:\Users\userName\Documents\myFile.wav", _waveIn.WaveFormat);
    _waveIn.StartRecording();
}

private void _waveIn_DataAvailable(object sender, WaveInEventArgs e) {
    if (fileToWrite != null) {
    fileToWrite.Write(e.Buffer, 0, e.BytesRecorded); // writes bytes to the wav file
    fileToWrite.Flush();
    }
}
private void btn_stop_Click(object sender, EventArgs e) {
    _waveIn.StopRecording();
}

希望有所帮助,