| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Просмотр видео и MFC |
| Автор: kurlyak 7.11.2007, 15:08 |
| Скажите пожалуйста, какие функции MFC загружают, инсталируют кодеки видео. Как это видео (например .avi) просмотреть в программе на Visual C++? То есть какое то окно же создать наверно надо, лично мне надо просматривать видео в диалоговой форме (CDialog). Какой елемент управления разместить на диалоге, что бы в нем смотреть мое видео и как к этому элементу управления подключить мой .avi файл? |
| Автор: Andrey44 7.11.2007, 15:36 |
| Если просто посмотреть несжатый AVI то CAnimateCtrl А если фильмы http://directshow.wonderu.com/ посмотри здесь |
| Автор: zkv 7.11.2007, 16:20 |
| и тут: http://www.codeproject.com/audio/MediaPlayer.asp |
| Автор: kurlyak 7.11.2007, 17:31 | ||
Написал примитивный код, что бы разобраться что к чему, требует библиотеки, не могу найти в msdn какие именно. Подскажите.
Добавлено через 8 минут и 34 секунды Ага, нашел, надо написать #include <dshow.h>, но где его взять? У меня 6-й Visual C++ пишет что не может найти такой файл. |
| Автор: zkv 7.11.2007, 17:47 |
| kurlyak, нужно скачать и установить DirectX SDK архив ~235 MB |
| Автор: kurlyak 7.11.2007, 17:57 |
| Ага, понятно. Попробую. |
| Автор: kurlyak 8.11.2007, 18:04 |
| Нашел я 9-й DirectX SDK, у меня Visual C++ 6. Компилятор пишет что Compiling... myCAnimateCtrlDlg.cpp c:\dx90sdk\include\strmif.h(1018) : error C2146: syntax error : missing ';' before identifier 'HSEMAPHORE' c:\dx90sdk\include\strmif.h(1018) : fatal error C1004: unexpected end of file found Error executing cl.exe. Может версия Visual C++ моего не подходит? У меня в проекте таких файлов нету, в которых пишеться ошибка. |
| Автор: zkv 8.11.2007, 18:20 |
| kurlyak, трудно что либо сказать по приведенным тобою сведениям. Попробуй подключить хедеры директ икса в конце файла stdafx.h (те после всех остальных инклудов) твоего проекта. по сообщению компилятора видно, что ошибка в директиксовских инклудах. |
| Автор: kurlyak 8.11.2007, 18:39 | ||
| Получилось, только теперь ошибка в программе, я не знаю как ее исправить: Compiling... myCAnimateCtrlDlg.cpp C:\My\MFC\myCAnimateCtrl\myCAnimateCtrlDlg.cpp(107) : error C2440: 'initializing' : cannot convert from 'char [10]' to 'const unsigned short *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast Error executing cl.exe. myCAnimateCtrl.exe - 1 error(s), 0 warning(s) Ошибка для строки:
|
| Автор: zkv 8.11.2007, 18:48 | ||
? |
| Автор: kurlyak 8.11.2007, 18:53 |
| О, получилось, только теперь компллер что то выдает. Может еще библиотеки надо в проект подключать? Какие если да. Compiling... myCAnimateCtrlDlg.cpp C:\My\MFC\myCAnimateCtrl\myCAnimateCtrlDlg.cpp(110) : warning C4700: local variable 'evCode' used without having been initialized Linking... myCAnimateCtrlDlg.obj : error LNK2001: unresolved external symbol _IID_IMediaEventEx myCAnimateCtrlDlg.obj : error LNK2001: unresolved external symbol _IID_IMediaControl myCAnimateCtrlDlg.obj : error LNK2001: unresolved external symbol _CLSID_FilterGraph myCAnimateCtrlDlg.obj : error LNK2001: unresolved external symbol _IID_IGraphBuilder Debug/myCAnimateCtrl.exe : fatal error LNK1120: 4 unresolved externals Error executing link.exe. myCAnimateCtrl.exe - 5 error(s), 1 warning(s) Добавлено через 6 минут и 24 секунды Нашел я что линковать: strmiids.lib. Компилируеться и линкуеться без ошибок, тольк теперь во время запуска проги пишет окно информации, что у меня :NMSQL.DLL нет в системе и надо переинсталить визуальный С++. У меня не полная версия визуального С++ на компакт- диске, что именно нужно добавить в него, что бы заработало? Добавлено через 11 минут и 14 секунд Всмысле я не полностью весь визульный Си ставил себе не винт, какой компонет добавить? |
| Автор: kurlyak 9.11.2007, 01:56 | ||
Поставил Визуальную студию 2005. Все компилируеться без ошибок, линк тоже без ошибок, но нажимаю на кнопку и никакого действия не происходит. Пример взял из мсдн-а. Не хочет проигрывать не .avi, не .mpg, не wmv. В чем может быть проблема?
|
| Автор: kurlyak 9.11.2007, 17:48 | ||
| Ага все исправил. Добавил панель открытия файлов. Но... Compiling... DX VideoDlg.cpp c:\my\mfc\dx video\dx video\dx videodlg.cpp(132) : error C2664: 'wcsncpy' : cannot convert parameter 2 from 'LPSTR' to 'const wchar_t *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast Build log was saved at "file://c:\My\MFC\DX Video\DX Video\Debug\BuildLog.htm" DX Video - 1 error(s), 0 warning(s) Часть кода такая:
|
| Автор: Andrey44 9.11.2007, 18:10 | ||||
Добавлено через 4 минуты и 54 секунды И вообще, делай
|
| Автор: kurlyak 10.11.2007, 16:06 | ||
А я вот сделал так:
только в MSDN ничего не говориться о USES_CONVERSION и T2W. Что это такое? |