Вот откопал рабочий переключатель из заброшенного видеоплеера
Код:
procedure TMainForm.btnSoundSwitchClick(Sender: TObject);
var
FList: TDSoundFilterList;
pBasicAudio: iBasicAudio;
i: integer;
begin
FList:= TDSoundFilterList.Create(FilterGraph as iFilterGraph);
try
i:= (Sender as TButton).Tag + 1;
if i <> FList.Count then
begin
FilterGraph.QueryInterface(IID_IBasicAudio, pBasicAudio);
pBasicAudio.put_Volume(-10000);
(Sender as TButton).Tag:= (Sender as TButton).Tag + 1;
FList.Items[(Sender as TButton).Tag].QueryInterface(IID_IBasicAudio, pBasicAudio);
pBasicAudio.put_Volume(0);
end else
begin
FilterGraph.QueryInterface(IID_IBasicAudio, pBasicAudio);
pBasicAudio.put_Volume(-10000);
(Sender as TButton).Tag:= 0;
FList.Items[(Sender as TButton).Tag].QueryInterface(IID_IBasicAudio, pBasicAudio);
pBasicAudio.put_Volume(0);
end;
finally
FList.Free;
end;
end;
гляньте пжлст, вдруг поможет