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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2009, 22:04   #1
Bruster
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 18
По умолчанию DirectShow в Visual Studio 2008 C++

Мне необходимо написать видеопроигрыватель.
Хочу использовать VS 2008 C++.
Подскажите, какой проект создавать(ATL,MFC,Windows Form), какую инфу почитать, чтобы создать полноценное, качественное и с приятным интерфейсом приложение.
В МСДНе мелкомягких мало что понятно.
Delphi и Builder не могу использовать.
Bruster вне форума Ответить с цитированием
Старый 12.11.2009, 22:28   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

написать приятное приложение можно и на winapi ... начните с изучения построения графов для видеофайлов и создания скиновых форм
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.11.2009, 22:57   #3
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

http://directshow.wonderu.com/ ?????!!!!!!!!!!!!!1111111
Levsha100 вне форума Ответить с цитированием
Старый 16.11.2009, 12:56   #4
Bruster
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 18
По умолчанию

http://directshow.wonderu.com/ - это читал, но там все для Delphi, пробовал перенести в VS 2008 на формовые проекты, выдает много ошибок.
Можно ли поподробнее про winapi и использование в нем directshow или ссылочку какую-нибудь. И что такое скиновые формы?
Bruster вне форума Ответить с цитированием
Старый 16.11.2009, 13:11   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Можно ли поподробнее про winapi и использование в нем directshow
использовать вы можете везде где в системе directx стоит... winapi лишь как средство создания "приятного приложения"

Цитата:
http://directshow.wonderu.com/ - это читал, но там все для Delphi, пробовал перенести в VS 2008 на формовые проекты, выдает много ошибок
это вы зря, ссылку вам Levsha100 хорошую дал... портировать код нужно понимать, что... поэтому вот подробнее: >>> читаем <<< , >>> общая информация и примеры на "си" <<< , >>> методы <<<
Цитата:
И что такое скиновые формы
форма в виде картинки (если сталкивались с регионами) или интерфейс с подгружаемыми картинками (пример - winamp)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 16.11.2009 в 13:15.
raxp вне форума Ответить с цитированием
Старый 18.11.2009, 19:20   #6
Bruster
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 18
По умолчанию

Что же, раз тут начал писать, то продолжу.
Я создал форму, вывел на неё видео(использовал пример с сайта
DiredtShow по-русски).
Так вот по примеру создания формы у неё есть обработки событий,
и что бы он работал надо запускать вечный цикл.
Вопрос как это сделать подругому?
Так как пока процесс рендеринга видео не закончится,
выполнение кода WinMain не происходит.
Bruster вне форума Ответить с цитированием
Старый 18.11.2009, 20:30   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

не нужно бесконечный цикл...у интерфейса IMediaControl кроме renderfile есть методы run, stop и т.д. ими и управляете ...а для индикации процесса достаточно повесить в потоке (а таким простейшим является таймер):
Код:
//пишу в терминах delphi, думаю поймете

//= main timer =
procedure Tvid.Timer1Timer(Sender: TObject);
//Get Position
 if Player.Initialized then begin
  player.MediaSeeking.GetDuration(Duration);
  player.MediaSeeking.GetCurrentPosition(CurrPos) - определение положения текущего
 end else CurrPos:=0;

 //Check EOF
 if (Player.Initialized) and (PlayState = STATE_PLAY) and
  (CurrPos >= Duration) then begin
    Player.MediaControl.Stop;
    PlayState:= STATE_STOP;
    PlayNextFile(TRUE)
  end
 end;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 25.11.2009, 23:56   #8
Bruster
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 18
По умолчанию

Возникла новая проблема.
Я взял пример мелкемягких из DirectShowSDK_All\DirectShow\Player s\Texture3D9
При компиляции следующие ошибки:
1>Main.obj : error LNK2019: unresolved external symbol "public: __thiscall CBaseVideoRenderer::CBaseVideoRende rer(struct _GUID const &,char *,struct IUnknown *,long *)" (??0CBaseVideoRenderer@@QAE@ABU_GUI D@@PADPAUIUnknown@@PAJ@Z) referenced in function "public: __thiscall CTextureRenderer::CTextureRenderer( struct IUnknown *,long *)" (??0CTextureRenderer@@QAE@PAUIUnkno wn@@PAJ@Z)
1>D:\KYDPayer\Debug\KYDPayer.exe : fatal error LNK1120: 1 unresolved externals
Что это вообще значит?
Bruster вне форума Ответить с цитированием
Старый 26.11.2009, 00:06   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

очевидно компилятор не видит часть либ или модулей... поиграйтесь с #include
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MS Visual Studio 2008 BOBAH13 Софт 14 13.11.2009 23:44
visual studio 2008 Kukkk Софт 7 07.11.2009 00:28
Visual Studio 2008 bullvinkle Помощь студентам 4 10.11.2008 23:44
Visual C# Studio 2008 werat Общие вопросы .NET 6 17.10.2008 16:38