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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ошибка при загрузке плагинов в Qt (плагин есть, но не загружается)  (Прочитано 5709 раз)
Radmir
Гость
« : Ноябрь 24, 2019, 09:51 »

Добрый день знатокам!

Хочу показать html с видео в QWebView.
html показывает видео при его загрузке в браузеры Firefox, Chrome.
Мое приложение html грузит, но видео не показывает.
установка переменной окружения QT_DEBUG_PLUGINS=1 дает следующую информацию:

2019.11.24 12:19:28[D] QFactoryLoader::QFactoryLoader() looking at "C:/Qt/5.3.1/5.3/msvc2010_opengl/plugins/mediaservice/wmfengine.dll"
2019.11.24 12:19:28[W] Found metadata in lib C:/Qt/5.3.1/5.3/msvc2010_opengl/plugins/mediaservice/wmfengine.dll, metadata=
{
    "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
    "MetaData": {
        "Keys": [
            "windowsmediafoundation"
        ],
        "Services": [
            "org.qt-project.qt.mediaplayer",
            "org.qt-project.qt.audiodecode"
        ]
    },
    "className": "WMFServicePlugin",
    "debug": false,
    "version": 328449
}
То есть плагин есть, и далее:
2019.11.24 12:19:28[D] loaded library "C:/Qt/5.3.1/5.3/msvc2010_opengl/plugins/mediaservice/wmfengine.dll"
2019.11.24 12:19:28[W] QLibraryPrivate::loadPlugin failed on "C:/Qt/5.3.1/5.3/msvc2010_opengl/plugins/mediaservice/wmfengine.dll" : "Cannot load library C:/Qt/5.3.1/5.3/msvc2010_opengl/plugins/mediaservice/wmfengine.dll: Не найден указанный модуль."
То есть плагин есть, но не грузится,
и в итоге естесственно:
2019.11.24 12:19:28[W] defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"

что это? чего-то еще не хватает?

С уважением,
Радмир
Записан
Radmir
Гость
« Ответ #1 : Ноябрь 24, 2019, 15:03 »

Если посмотреть зависимости для wmfengine.dll, то оказывается она использует следующие *.dll:
mf.dll; mfplat.dll; mfreadwrite.dll

значить wmfengine.dll есть, но загрузить ее не выйдет.

На моей машине таких mf.dll; mfplat.dll; mfreadwrite.dll нет, ясно, что в свою очередь они могут зависить еще от чего-нибудь.
Был бы признателен, если подсткажете, откуда они, какого продукта не хватает и что нужно поставить?

С уважением,
Радмир
Записан
Radmir
Гость
« Ответ #2 : Ноябрь 25, 2019, 15:58 »

Похоже все это входит в Media Foundation для Windows... Подскажите, как это правильно называется и откуда его скачать?
С уважением,
Радмир
Записан
Radmir
Гость
« Ответ #3 : Ноябрь 26, 2019, 17:20 »

Действительно,
mfplat.dll в свою очередь зависит от mfcore.dll, а та зависит от других *.dll и самых разных методов других *.dll,

Учитывая, что нужно также согласовать версии модулей, то нужно искать соответствующие пакеты/продукты.

Если у кого-то QWebview версии 5.3.1 под Windows (XP-32, 7-32/64) показывает видео в html, то скажите, какие продукты у вас стоят?

А быть может кто знает, как использовать плагины Firefox, Chrome в Qt?

С уважением,
Радмир
Записан
Radmir
Гость
« Ответ #4 : Декабрь 02, 2019, 15:59 »

Оказывается решение заключается в перекомпиляции модуля qtmultimedia.
У меня это http://download.qt.io/archive/qt/5.3/5.3.1/submodules/qtmultimedia-opensource-src-5.3.1.zip. Модуль должен соотвествовать вашей версии Qt.
Нужно внести изменения согласно посту:
https://forum.qt.io/topic/28620/solved-qtmultimedia-defaultserviceprovider-requestservice-no-service-found-for-org-qt-project-qt-mediaplayer/9

Изменения убирают config:wmf и все ненужные зависимости.

Перекомпилируйте qtmultimedia.pro и заберите из каталога release вновь созданные plugins: audio, mediaservice, playlistformats.

При установке не забудьте о плагине flash и кодеках (например,K-lite simple).

У меня это работает под Windows XP, 7 сборка MSVC2010 32 бит.

Успехов,
С уважением,
Радмир
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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