2017-08-30 288 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

我會試試看 –

相關問題