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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2017, 15:26   #1
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию directshow видеоплеер

Почему звук нету ? видео воспроизводится но звук нет
Код:
uses
activex,directshow9;

var
    hr: HRESULT;
  evCode: Integer;
pGraphBuilder : IGraphBuilder = nil;
pCaptureGraphBuilder2: ICaptureGraphBuilder2 = nil;
pSourceFile : IBaseFilter = nil;
pMediaControl : IMediaControl = nil;
pMediaEvent : IMediaEvent = nil;
pVideoWindow : IVideoWindow = nil;
 paUDIO:   IBasicAudio=NIL;

procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.execute then
begin
CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC, IID_IGraphBuilder,  pGraphBuilder);
CoCreateInstance(CLSID_CaptureGraphBuilder2, nil, CLSCTX_INPROC,  IID_ICaptureGraphBuilder2, pCaptureGraphBuilder2);
CoCreateInstance(CLSID_AudioRender, nil, CLSCTX_INPROC, IID_IBasicAudio, paudio);

pCaptureGraphBuilder2.SetFiltergraph(pGraphBuilder);
pGraphBuilder.AddSourceFilter(StringToOleStr(opendialog1.filename), '',  pSourceFile);
pGraphBuilder.QueryInterface(IID_IMediaControl, pMediaControl);
pGraphBuilder.QueryInterface(IID_IMediaEvent, pMediaEvent);
 pGraphBuilder.QueryInterface(IID_IBasicAudio, paUDIO);
pCaptureGraphBuilder2.RenderStream(nil, nil, pSourceFile as IBaseFilter, nil, nil);

hr := pGraphBuilder.QueryInterface(IID_IVideoWindow,pVideoWindow);
pVideoWindow.put_Owner(Panel1.Handle);
pVideoWindow.put_WindowStyle(WS_CHILD);
pVideoWindow.put_Left(0);
pVideoWindow.put_Width(Panel1.Width);
pVideoWindow.put_Top(0);
pVideoWindow.put_Height(Panel1.Height);
pMediaEvent.WaitForCompletion(INFINITE, evCode);
pMediaControl.Run;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC, IID_IGraphBuilder,pGraphBuilder);
pGraphBuilder.QueryInterface(IID_IMediaControl, pMediaControl);
pGraphBuilder.QueryInterface(IID_IMediaEvent, pMediaEvent);
pGraphBuilder.QueryInterface(IID_IBasicAudio, paUDIO);
paUDIO.put_Volume(-10000);
end;
alman12 вне форума Ответить с цитированием
Старый 02.04.2017, 13:45   #2
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

никто не может помочь ?
alman12 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видеоплеер DirectShow - ручное построение графа BLACK_RAIN Мультимедиа в Delphi 33 11.11.2013 10:50
Видеоплеер Ko$ Общие вопросы Delphi 3 25.12.2011 18:14
Видеоплеер Ko$ Общие вопросы Delphi 4 16.12.2011 10:19
Видеоплеер tiptom HTML и CSS 0 16.03.2011 05:34
Видеоплеер blatm100 Фриланс 12 26.04.2010 12:07