Не удается захватить видео с веб-камеры с помощью WPFMediaKit - PullRequest
1 голос
/ 16 марта 2012

У меня есть простой код для захвата видео с веб-камеры и сохранения его в файле, но он ничего не делает и не дает мне никакой ошибки. Я использую WPFMediaKit, и это мой код

        IFilterGraph2 filterGraph;
        ICaptureGraphBuilder2 captureGraphBuilder;
        IBaseFilter captureDeviceFilter;
        DsDevice currentDevice;

        private void InitInterfaces(DsDevice device)
        {
            int hr;
            filterGraph = new FilterGraph() as IFilterGraph2;
            captureGraphBuilder = new CaptureGraphBuilder2() as ICaptureGraphBuilder2;
            hr = captureGraphBuilder.SetFiltergraph(filterGraph);
            DsError.ThrowExceptionForHR(hr);

            currentDevice = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice)[0];
            currentDevice = device;
            hr = filterGraph.AddSourceFilterForMoniker(currentDevice.Mon, null,       currentDevice.Name, out captureDeviceFilter);
            DsError.ThrowExceptionForHR(hr);

            IFileSinkFilter sink;
            IBaseFilter mux;
            hr = captureGraphBuilder.SetOutputFileName(MediaSubType.Avi, @"ss.avi", out mux, out sink);
            DsError.ThrowExceptionForHR(hr);

            hr = captureGraphBuilder.RenderStream(PinCategory.Capture, MediaType.Video, captureDeviceFilter, null, mux);
            DsError.ThrowExceptionForHR(hr);

            hr = captureGraphBuilder.RenderStream(PinCategory.Preview, MediaType.Video, captureDeviceFilter, null, null);
            DsError.ThrowExceptionForHR(hr);


        }

и звоню вот так

     DsDevice[] devices = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
            DsDevice device = devices[0] as DsDevice;
            videoCaptureElement.VideoCaptureDevice = device ;
            InitInterfaces(device);

            videoCaptureElement.Play();

когда я запускаю приложение, оно должно было начать запись, но я ничего не понимаю, что не так в моем коде и как это исправить, спасибо

...