如何使用c#winforms录制媒体播放器的音频。
我正在尝试创建一个记录播放器(vlc)音频的应用,然后将其保存到我的电脑中。
任何想法都将受到高度赞赏。
答案 0 :(得分:1)
你的意思是使用你的媒体播放器?如果您只是想使用C#,只需使用 winmm.dll 库。
导入命名空间。
使用System.Runtime.InteropServices;
声明互操作函数
[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);
开始录制
记录(“打开新类型waveaudio Alias recsound”,“”,0,0);
记录(“记录recsound”,“”,0,0);
停止录制并保存到文件
记录(“保存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();
}
希望有所帮助,