var i: integer; begin VideoSysDev := TSysDevEnum.Create(CLSID_VideoInputDeviceCategory); for i := 0 to VideoSysDev.CountFilters - 1 do CB_VideoCapFilters.Items.Add(VideoSysDev.Filters[i].FriendlyName); CB_VideoCapFilters.ItemIndex := 0;
AudioSysDev := TSysDevEnum.Create(CLSID_AudioInputDeviceCategory); for i := 0 to AudioSysDev.CountFilters - 1 do CB_AudioCapFilters.Items.Add(AudioSysDev.Filters[i].FriendlyName); CB_AudioCapFilters.ItemIndex := 0;
var i: integer; begin VideoSysDev := TSysDevEnum.Create(CLSID_VideoInputDeviceCategory); for i := 0 to VideoSysDev.CountFilters - 1 do CB_VideoCapFilters.Items.Add(VideoSysDev.Filters[i].FriendlyName); CB_VideoCapFilters.ItemIndex := 0;
AudioSysDev := TSysDevEnum.Create(CLSID_AudioInputDeviceCategory); for i := 0 to AudioSysDev.CountFilters - 1 do CB_AudioCapFilters.Items.Add(AudioSysDev.Filters[i].FriendlyName); CB_AudioCapFilters.ItemIndex := 0;
var PinList: TPinList; i, LineIndex: integer; ABool: LongBool; begin AudioSysDev.SelectGUIDCategory(CLSID_AudioInputDeviceCategory); if CB_AudioCapFilters.ItemIndex <> -1 then begin AudioSourceFilter.BaseFilter.Moniker := AudioSysDev.GetMoniker(CB_AudioCapFilters.ItemIndex); AudioSourceFilter.FilterGraph := FilterGraph; FilterGraph.Active := true; PinList := TPinList.Create(AudioSourceFilter as IBaseFilter); CB_AudioFormats.Clear; i := 0; while i < PinList.Count do if PinList.PinInfo[i].dir = PINDIR_OUTPUT then begin AudioMediaTypes.Assign(PinList.Items[i]); PinList.Delete(i); end else inc(i);
for i := 0 to AudioMediaTypes.Count - 1 do begin CB_AudioFormats.Items.Add(AudioMediaTypes.MediaDescription[i]); end; CB_AudioFormats.ItemIndex := 0;
FilterGraph.Active := false; CB_InputLines.Clear; LineIndex := -1; for i := 0 to PinList.Count - 1 do begin CB_InputLines.Items.Add(PinList.PinInfo[i].achName); with (PinList.Items[i] as IAMAudioInputMixer) do get_Enable(ABool); if ABool then LineIndex := i; end; CB_InputLines.ItemIndex := LineIndex; PinList.Free; end; end;
显示属性
ShowFilterPropertyPage(Self.Handle, VideoSourceFilter as IBaseFilter);
ShowFilterPropertyPage(Self.Handle, AudioSourceFilter as IBaseFilter);