在C#中使用DirectShow實現視頻的捕獲與播放功能,可以通過創建DirectShow圖形來實現。以下是一個簡單的示例代碼:
首先,確保你有安裝DirectShow SDK,并在項目中引用DirectShow庫。
創建一個DirectShow圖形,并添加視頻捕獲和播放器過濾器。可以使用以下代碼創建DirectShow圖形:
using DirectShowLib;
// 創建DirectShow圖形
IGraphBuilder graphBuilder = (IGraphBuilder)new FilterGraph();
ICaptureGraphBuilder2 captureGraphBuilder = (ICaptureGraphBuilder2)new CaptureGraphBuilder2();
captureGraphBuilder.SetFiltergraph(graphBuilder);
// 添加視頻捕獲設備
IBaseFilter deviceFilter = null;
Guid clsid = FilterCategory.VideoInputDevice;
captureGraphBuilder.FindInterface(ref clsid, null, out deviceFilter);
graphBuilder.AddFilter(deviceFilter, "Video Capture Device");
// 添加視頻播放器
IBaseFilter videoRenderer = (IBaseFilter)new VideoRenderer();
graphBuilder.AddFilter(videoRenderer, "Video Renderer");
// 連接視頻捕獲設備和視頻播放器
captureGraphBuilder.RenderStream(PinCategory.Capture, MediaType.Video, deviceFilter, null, videoRenderer);
// 開始播放視頻
IMediaControl mediaControl = (IMediaControl)graphBuilder;
mediaControl.Run();
通過以上步驟,你可以使用C#和DirectShow實現視頻的捕獲與播放功能。需要注意的是,DirectShow已經過時,建議使用更現代的替代方案,如Media Foundation或Windows.Media.Capture API。