08.12.2014, 12:51
|
Новичок
|
|
Регистрация: 25.12.2011
Сообщения: 75
Репутация: 10
|
|
Alegun, спасибо за помощь вот так отрабатывает нормально
Код:
VolumeTable : Array[0..16] of Integer = (-10000,-9000,-7500,-6500,-5500,-4500,-4000,-3000,-2000,-1000,-750,-500,-250,-125,-100,-50,0);
procedure TForm1.SetAudioStream(dsGraphBuilder: IGraphBuilder; TrackID: Integer);
// Schaltet auf den angegebenen Kanal um
var
pEnum : IEnumFilters;
pFilter :IBaseFilter;
cFetched : dword;
CL:TGUID;
i:integer;
BA : IBasicAudio;
z : integer;
begin
i:=0;
// Get filter enumerator
dsGraphBuilder.EnumFilters(pEnum);
while pEnum.Next(1, pFilter, @cFetched) = S_OK do
begin
pFilter.GetClassID(CL);
if IsEqualGUID(CL,CLSID_DSoundRender) then
begin
If i<>TrackID then
z:=0 else z:=16;
pFilter.QueryInterface(IID_IBasicAudio,BA);
BA.put_Volume(VolumeTable[z]);
BA:=nil;
inc(i);
end;
pFilter:=nil;
end;
pFilter:=nil;
pEnum:=nil;
end;
|