Могу порекомендовать DSPack - компонент для Delphi. Работает с 9-м DirectX, позволяет работать и с WDM устройствами и хватать в ASF и BMP. Мне компонент компонент понравился, несмотря на мелкие глюки.
\Program Files\DSPack\readme.htm
How to install ?
All Versions
1 - Install DirectX9 if you plan to use VMR or Direct3D :
2 - Install Direct3D libraries if you plan to use Direct3D :
3 - Install Windows Media if you plan to use ASF compression or streaming:
Delphi 5,6 & 7
1 - Add this paths to your search directory:
- (DSPackDir)\src\Directx9
- (DSPackDir)\src\DSPack
2 - Compile DirectX 9 Package (DirectX9_Dx.dpk) from the "packages" directtory.
3 - Compile DSPack Package (DSPack_Dx.dpk) from the "packages" directory.
4- Install Design Package (DSPackDesign_Dx.dpk) from the "packages" directory.
If you have a warning message during the last step on Win9x, probaby the path : "../Delphi.../bin" is not correctly defined in "c:\autoexec.bat", in most case the path is too long. To correct this problem you have to set this path again. Alternatively change the bpl output directory option on each package to "$(DELPHI)\Bin" (Options>Directories/Conditionals>Output directory).
Примеры программ с исходниками в \Program Files\DSPack\Demos
Я взял сходники D:\Program Files\DSPack\Demos\D6-D7\PlayVideoCap и \Program Files\DSPack\Demos\D6-D7\SampleGrabber- все работает отлично. Пару маленьких глюков есть.
{Установка частоты тюнера}
Procedure TVideoForm.SetFreq(Tuner: IAMTvTuner; Value: Int64);
Var
PropertySet : IKSPropertySet;
F : KSPROPERTY_TUNER_FREQUENCY_S;
H : HRESULT;
begin
If DeviceTVOK then
Begin
H:=Tuner.QueryInterface(IID_IKSPropertySet,PropertySet);{}
If SUCCEEDED(H) then
begin
F.Frequency:=Value;
PropertySet.Set_(PROPSETID_TUNER,
AMPROPERTY_PIN(KSPROPERTY_TUNER_FREQUENCY),
PKSPROPERTY(@f),
SizeOf(f)-SizeOf(PKSPROPERTY),
@F,
SizeOf(f));
PropertySet:=nil;
end;
Sleep(30);
end;
end;
в библиотеке DX SDK я нашел исходники для amcap. Вот только они не компилятся (ошибки линковщика). Может кто помочь???
Скачал исходники PlayTune, дык и они не компилятся. DShow.h найти не могут, хотя он есть в каталоге DX SDK. Может кто помочь???
Procedure TVideoForm.SetFreq(Tuner: IAMTvTuner; Value: Int64);
Var
PropertySet : IKSPropertySet;
F : KSPROPERTY_TUNER_FREQUENCY_S;
H : HRESULT;
begin
If DeviceTVOK then
Begin
H:=Tuner.QueryInterface(IID_IKSPropertySet,PropertySet);{}
If SUCCEEDED(H) then
begin
F.Frequency:=Value;
PropertySet.Set_(PROPSETID_TUNER,
AMPROPERTY_PIN(KSPROPERTY_TUNER_FREQUENCY),
PKSPROPERTY(@f),
SizeOf(f)-SizeOf(PKSPROPERTY),
@F,
SizeOf(f));
PropertySet:=nil;
end;
Sleep(30);
end;
end;
подойдёт для установки частоты в FM режиме?!
и еще...
ругается вот на эту строчку
AMPROPERTY_PIN(KSPROPERTY_TUNER_FREQUENCY)
пишет "Incompatible types: 'Cardinal' and 'KSPROPERTY_TUNER'"
в чем причина?