コード例 #1
0
        private void Setup()
        {
            int         hr;
            IBaseFilter ibf;

            IFilterGraph2 ifg = new FilterGraph() as IFilterGraph2;

            m_imc = ifg as IMediaControl;
            DsROTEntry rot = new DsROTEntry(ifg);

            DsDevice[] devs = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
            hr = ifg.AddSourceFilterForMoniker(devs[0].Mon, null, devs[0].Name, out ibf);

            ICaptureGraphBuilder2 icgb2 = new CaptureGraphBuilder2() as ICaptureGraphBuilder2;

            hr = icgb2.SetFiltergraph(ifg);
            DsError.ThrowExceptionForHR(hr);

            hr = icgb2.RenderStream(null, null, ibf, null, null);
            DsError.ThrowExceptionForHR(hr);

            IBaseFilter pFilter;

            hr = ifg.FindFilterByName("Video Renderer", out pFilter);

            m_qc = pFilter as IQualityControl;

            rot.Dispose();
        }
コード例 #2
0
        private void Setup()
        {
            int hr;

            IFilterGraph2 ifg = new FilterGraph() as IFilterGraph2;

            m_imc = ifg as IMediaControl;
            DsROTEntry  rot = new DsROTEntry(ifg);
            IBaseFilter pFilter;

            DsDevice[] devs = DsDevice.GetDevicesOfCat(FilterCategory.AudioInputDevice);

            hr = ifg.AddSourceFilterForMoniker(devs[0].Mon, null, devs[0].Name, out pFilter);
            DsError.ThrowExceptionForHR(hr);

            ICaptureGraphBuilder2 icgb2 = new CaptureGraphBuilder2() as ICaptureGraphBuilder2;

            hr = icgb2.SetFiltergraph(ifg);
            DsError.ThrowExceptionForHR(hr);

            //IPin pPin = DsFindPin.ByDirection((IBaseFilter)o, PinDirection.Output, 0);
            hr = icgb2.RenderStream(null, MediaType.Audio, pFilter, null, null);
            DsError.ThrowExceptionForHR(hr);

            IBaseFilter pAudio;

            hr = ifg.FindFilterByName("Audio Renderer", out pAudio);

            m_ibn = pAudio as IAMAudioRendererStats;
        }