c#視訊音訊的錄製和預覽
1、錄製需要引入一個dll包,包名為: DirectShow.dll。下載地址為:http://download.csdn.net/detail/da1da1xue/8580225
2、開發程式碼如下:
using DirectShow;
public partial class Form1 : Form
{
DirectXCapture d_capture = new DirectXCapture();
public Form1()
{
InitializeComponent();
//視訊裝置
foreach (DsDevice d in d_capture.videoDevices)
{
ListViewItem item = new ListViewItem(d.Name);
item.Tag = d;
videolistView.Items.Add(item);
}
//音訊裝置
foreach (DsDevice d in d_capture.audioDevices)
{
ListViewItem item = new ListViewItem(d.Name);
item.Tag = d;
audiolistView.Items.Add(item);
}
}
private void actionBtn_Click(object sender, EventArgs e)
{
if (videolistView.SelectedItems.Count > 0)
{
//視訊
ListViewItem video_item = videolistView.SelectedItems[0];
DsDevice video_dev = video_item.Tag as DsDevice;
d_capture.video_mon = video_dev.Mon;
}
if (audiolistView.SelectedItems.Count > 0)
{
//音訊
ListViewItem audio_item = audiolistView.SelectedItems[0];
DsDevice audio_dev = audio_item.Tag as DsDevice;
d_capture.audio_mon = audio_dev.Mon;
}
//如果要儲存
if (this.SavecheckBox.Checked)
{
//選擇儲存路徑
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.FileName = "採集.avi";
if (saveDialog.ShowDialog() == DialogResult.OK)
{
d_capture.saveMediaPath = saveDialog.FileName;
}
else
return;
}
//如果預覽
if (this.PreviewcheckBox.Checked)
{
//設定預覽視窗
d_capture.previewWinOwner = this.MediaPanel.Handle;
}
d_capture.StartupVideo(this.SavecheckBox.Checked, this.PreviewcheckBox.Checked);
}
private void stopBtn_Click(object sender, EventArgs e)
{
d_capture.Stop();
}
}