Russian Qt Forum
Сентябрь 21, 2024, 20:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [РЕШЕНО][Qt 4.6.1]Phonon vs Windows  (Прочитано 16127 раз)
Vitto74
Гость
« : Март 10, 2010, 00:27 »

Пишу электронный учебник в котором есть видео проигрыватель. В Linux все заработало на ура без лишних телодвижений. Но вот в вендой начались проблемы.
И так WinXP SP3. По умолчанию в ней есть поддержка только не сжатого видео и wmv (почему меня это не удивляет). Прога собирается в QtSDK (QtCreator+Qt4+MinGw) без ошибок, но при создании Phonon::VideoPlayer, в консоль попадает вот это
Код:
the video widget cold not be initialized correctly
Формат видео пробовал wmv и, после установки кодеков, ogv. Но формат я думаю роли не играет - это ошибка на этапе инициализации. Последняя версия DirectX установлена.
Вот фрагмент кода, вызывающий эти сообщения:
Код:
player = new Phonon::VideoPlayer(Phonon::VideoCategory);
На всякий случай прикрепляю проект с проигрывателем.
« Последнее редактирование: Март 12, 2010, 00:01 от Vitto74 » Записан
Vitto74
Гость
« Ответ #1 : Март 11, 2010, 01:51 »

После установки DirectX SDK все заработало, но встала другая проблема. Что это проге нужно для работы на компе без SDK? Скомпиленная прога продолжала нормально работать даже после полного удаления SDK, но при переносе на свежепоставленную систему (с последним DirectX) работать отказывалась - виждет Phonon::VideoPlayer вообще не появлялся.

Народ! Помогите! Ведь реально важная проблема и не только для меня.
Записан
Akaiten
Гость
« Ответ #2 : Март 11, 2010, 09:35 »

Что за система? Какой DirectX стоит? Проверь dependencies у exe-шника. Проверь есть ли поддержка VMR-9 на этой системе?
Записан
Vitto74
Гость
« Ответ #3 : Март 11, 2010, 10:00 »

Компилилось на WinXP SP3 + QtSDK + DirectX SDK + DirectX (9.0c).
Запускалось на WinXP SP3 + DirectX (9.0c) + qt-либы.
PS можно по подробнее о dependencies и VMR-9?
Записан
Amigo_sa
Гость
« Ответ #4 : Март 11, 2010, 11:22 »

После установки DirectX SDK все заработало, но встала другая проблема. Что это проге нужно для работы на компе без SDK?
Читал тут, что Phonon на винде проигрывает с помощью директ шоу
Записан
Vitto74
Гость
« Ответ #5 : Март 11, 2010, 11:32 »

Читал. Но на сколько я понимаю DirectShow входит в DirectX, который уже установлен.
Assistant говорит как использовать phonon на винде
Цитировать
On Windows, building Phonon requires DirectX and DirectShow version 9 or higher. You'll need additional SDKs you can download from Microsoft.
Но как распространять скомпиленную прогу там не сказано.
Записан
Amigo_sa
Гость
« Ответ #6 : Март 11, 2010, 11:40 »

Читал. Но на сколько я понимаю DirectShow входит в DirectX, который уже установлен.
Assistant говорит как использовать phonon на винде
Цитировать
On Windows, building Phonon requires DirectX and DirectShow version 9 or higher. You'll need additional SDKs you can download from Microsoft.
Но как распространять скомпиленную прогу там не сказано.
Цитата из вики
Цитировать
В октябре 2004, DirectShow удаляется из официальной поставки DirectX и переносится к дополнениям DirectX. В апреле 2005, DirectShow полностью удаляется из официальных поставок DirectX и перемещается в Windows Server 2003 SP1 версию Microsoft Platform SDK[2]. Тем не менее для компиляции некоторых примеров из документации всё ещё требуется DirectX SDK[7]. А вот уже с выходом Windows Vista и документация начинает поставляться совместно с Windows SDK [2].
Просто я когда портировал на пустые компы под виндой прогу с phonon ставил и директХ и директШоу и кодеки, все работало.
Записан
Vitto74
Гость
« Ответ #7 : Март 11, 2010, 13:25 »

Блин! Ненавижу винду и мелкомягких! Где этот DirectShow взять? Весь сайт облазил. Ничего не подходит.
Виджет Phonon::VideoPlayer просто не появляется.
Записан
Amigo_sa
Гость
« Ответ #8 : Март 11, 2010, 13:44 »

Там же написано, что он теперь в комплекте Windows SDK. А так я гуглил и качал отдельный инсталлятор.
Записан
Akaiten
Гость
« Ответ #9 : Март 11, 2010, 14:01 »

можно по подробнее о dependencies и VMR-9?
Можно например воспользоваться тулзой Dependency Walker от Microsoft.

Насчет VMR9, в исходниках только одно упоминание строки "the video widget cold not be initialized correctly",
а именно в файле videorenderer_vmr9.cpp при неудачном выполнении кода
Код
C++ (Qt)
m_filter = Filter(CLSID_VideoMixingRenderer9, IID_IBaseFilter);
 
Посмотри ещё MSDNнасчет VMR.
Записан
Vitto74
Гость
« Ответ #10 : Март 11, 2010, 17:03 »

На сайте у мелкомягких лазить все равно проктологом работать! Не возможно! Дайте ссылку на установщик DirectShow, ато реально zaebalo.com
Записан
Akaiten
Гость
« Ответ #11 : Март 11, 2010, 18:43 »

Что ещё за установщик DirectShow? Это нонсенс. Что вам конкретно нужно? DirectShow SDK? Так он щас включён в Windows SDK (раньше был в DirectX 9.0 SDK Update - (February 2005) Extras). Реализацию DirectShow составляет в основном библиотека quartz.dll и по-моему, она изначально входит в Windows.
Записан
Vitto74
Гость
« Ответ #12 : Март 11, 2010, 19:04 »

Мдя.... чувствую себя ламером. Вот что значит сесть на Linux!
Опишу проблему еще раз - вдруг что-то не так сказал.
Пишу простенький плеер в виде QDialog, которому в конструкторе передается имя видео файла. Исходник в первом посте.
Если скомпилить на системе только с QtSDK, то виджет Phonon::VideoPlayer появляется (просто черная область), но воспроизведение не идет и при его создании в консоль попадает "the video widget cold not be initialized correctly".
Если поставить DirectX SDK, то то плеер работает нормально, но сообщение "the video widget cold not be initialized correctly" в консоли все равно появляется.
Если перенести скомпиленную прогу и нужные dll из qt на чистую систему, то виджет Phonon::Player не появляется вообще.
Я хочу понять что нужно установить на чистую систему для работы уже скомпиленного плеера и где это зять.
Записан
Akaiten
Гость
« Ответ #13 : Март 11, 2010, 20:14 »

Пришлось таки скачать проект, скомпилировать, запустить виртуальную машину (!) и проверить что за дела. А ведь лень, лень одолевает 
А кто phonon backend с собой брать будет? А? 
См. библиотеки в папке %QTDIR%/plugins/phonon/phonon_backend/

По крайней мере .avi проигрался, WinXP 5.1 (сборка 2600), DirectX 9.0c, Qt 4.6.2
Записан
Vitto74
Гость
« Ответ #14 : Март 11, 2010, 23:23 »

Огромное спасибо! Даже не знаю как благодарить! Два дня мучился.
Проблема стала гораздо понятнее. Проге нужен файл phonon_ds94.dll, который расположен непременно в папке D:\qt\2010.01\qt\plugins\phonon_backend\ (туда я установил qt) и нигде больше. Он в упор не замечает его рядом с исполняемым файлом и в папках c:\windows и c:\windows\system32.
Пробовал класть его в папку plugins\phonon_backend\ рядом с исполняемым файлом и в c:\windows\plugins\phonon_backend\ безрезультатно.
Пытался менять значение переменной QTDIR на c:\windows и ложить файл в c:\windows\plugins\phonon_backend\ не помогло.
Выставлял чистые системные переменные - все равно ищет там же.
Переставлять qt ради одной библиотеки это не по джедайски! Как заставить прогу видеть эту библиотеку в папках, указанных в PATH?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.073 секунд. Запросов: 21.