Показать сообщение отдельно
  #16  
Старый 08.12.2014, 12:51
ProDaNTe ProDaNTe вне форума
Новичок
 
Регистрация: 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;
Ответить с цитированием