Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2010, 10:51   #11
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

Сделал выбор дорожек (правда нужен перезапуск файла):
Код:
procedure GetSoundStreamsCount;
var
FLTList : TFilterList;
PinInfo : tpininfo;
PinList:tpinlist;
i,k,m:integer;
begin
Form1.StreamBox.Clear;
begin
Form1.StreamBox.Clear;
if Form1.FilterGraph.Active then
 begin
FLTList := TFilterList.Create(Form1.FilterGraph as IFilterGraph);
for i:=0 to FLTList.Count - 1 do
  if (FLTList.FilterInfo[i].achName = 'Nero MP4 Splitter') or
   (FLTList.FilterInfo[i].achName = 'AVI Splitter') then  <--Можно и нужно добавлять другие сплиттера 
    PinList:=TPinList.Create(FLTList.Items[i] as IBaseFilter);    
    if PinList.Count>0 then
  for k:=0 to PinList.Count-1 do
      begin
          PinInfo:= PinList.PinInfo[k];
          if (PinInfo.achName='Audio 0')  or
              (PinInfo.achName='Audio 1')  or
              (PinInfo.achName='Audio 3')  or
              (PinInfo.achName='Audio 4') or
              (PinInfo.achName='Stream 01')  or
              (PinInfo.achName='Stream 02')  or
              (PinInfo.achName='Stream 03')  or
              (PinInfo.achName='Stream 04') then
                  begin///CUT
                 Form1.StreamBox.Items.Add(PinInfo.achName);
                  end;
  end;
  end;
  end;
  Form1.StreamBox.ItemIndex:=0;
end;
и собственно выбор:
Код:
procedure ChangeSound(num:integer);
var
FLTList : TFilterList;
PinInfo : tpininfo;
PinList:tpinlist;
i,m,j, k:integer;
 begin
FLTList := TFilterList.Create(Form1.FilterGraph as IFilterGraph);
for i:=0 to FLTList.Count - 1 do
  if (FLTList.FilterInfo[i].achName = 'Nero MP4 Splitter') or
  (FLTList.FilterInfo[i].achName = 'AVI Splitter') then
    PinList:=TPinList.Create(FLTList.Items[i] as IBaseFilter);
    if PinList.Count>0 then
  for k:=0 to PinList.Count-1 do
  begin
  PinInfo:= PinList.PinInfo[k];
    iif (PinInfo.achName='Audio 0')  or
              (PinInfo.achName='Audio 1')  or
              (PinInfo.achName='Audio 3')  or
              (PinInfo.achName='Audio 4') or
              (PinInfo.achName='Stream 01')  or
              (PinInfo.achName='Stream 02')  or
              (PinInfo.achName='Stream 03')  or
              (PinInfo.achName='Stream 04') then
      begin
  if PinInfo.achName<>Form1.StreamBox.Text  then
                  begin///CUT
                 with PinList.Items[k] as IPin do
                 PinList.Items[k].Disconnect;
                  end;
      end;

  end;
  Form1.FilterGraph.Play;
end;

Последний раз редактировалось nXs; 26.03.2010 в 10:59.
nXs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
k-lite codec pack Brakus Помощь студентам 1 06.02.2010 04:10
Windows 2000 Service Pack 1 Иван Ришко Windows 5 20.06.2009 12:49
TMS Component Pack Gromsky Общие вопросы C/C++ 0 16.04.2009 15:23
MediaPlayer и кодеки вроде K-Lite codec pack, xp codec pack Rend1 Мультимедиа в Delphi 2 03.02.2008 20:17
MSXML 4.0 Service Pack 2 Nevil Общие вопросы Delphi 1 16.09.2007 18:15