2017-08-30 234 views
2

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

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

任何想法将不胜感激。

+0

入住这[这](https://开头msdn.microsoft.com/en-us/library/windows/desktop/dd757161(v=vs.85).aspx) – Berkay

回答

1

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

  1. 导入命名空间。

    using System.Runtime.InteropServices;

  2. 声明互操作功能

    [的DllImport( “WINMM.DLL”,入口点= “mciSendStringA”,ExactSpelling =真,字符集= CharSet.Ansi,SetLastError =真)
    私人静态外部INT记录(字符串lpstrCommand,字符串lpstrReturnString,int uReturnLength,int hwndCallback);

  3. 开始录制

    记录( “开放式新型waveaudio别名recsound”, “”,0,0);
    record(“record recsound”,“”,0,0);

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

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

+0

我的意思是媒体播放器的意思是,我希望在播放媒体播放声音时录制声音播放器。 –

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(); 
} 

希望帮助,

+0

我会试试看 –

相关问题