Qt + Phonon: не работает на некоторых компьютерах

У меня проблема с моим приложением после развертывания на чистой машине. Вот результаты запуска приложения:

  1. Win7 Home: После установки ffdshow программа воспроизводит wmv, mp3.
  2. Vista Home: с установленным ffdshow воспроизводится mp3, но не wmv
  3. WinXP (без пакетов обновлений): не воспроизводит wmv, mp3, даже при установленном ffdshow. Программа может найти 38 бэкэндов, среди них mp3 и wmv. Воспроизводит wav файлы.
  4. На компьютере, на котором собран проект, все прекрасно воспроизводится, даже если многие форматы отключены в ffdshow.

Папка plugins ставится помимо exe файла и содержит папку phonon_backends с phonon_ds94.dll.

Может кто-нибудь объяснить мне, как заставить программу воспроизводить файлы на компьютерах, где Qt не установлен?


person mimic    schedule 07.12.2011    source источник


Ответы (3)


Я не уверен, что файлы mp3 не воспроизводятся, но не забыли ли вы развернуть QtOpenGL4.dll на машинах, которые не будут воспроизводить видео? В Windows бэкенд Phonon полагается на эту DLL и будет просто молча сидеть и ничего не делать, когда его нет.

Предложение Sjwarner попробовать Dependency Walker является хорошим, особенно в таких случаях, когда библиотеки DLL подключаемых модулей загружаются динамически.

person Bart    schedule 07.12.2011
comment
Ой, совсем забыл про OpenGL... да, наверное это решило бы проблему... Вечером смогу проверить это решение, обновлю. Спасибо! - person mimic; 07.12.2011
comment
Просто добавление этого файла не помогло. Другие файлы присутствуют. Я буду работать с зависимостями, чтобы найти то, что не представлено. - person mimic; 08.12.2011
comment
Просто чтобы убедиться... папка называется phonon_backend или phonon_backends? (См. ваш вопрос) В конце не должно быть буквы «s». Я уверен, что это опечатка, но я должен спросить. - person Bart; 08.12.2011
comment
Хм... спасибо за комментарий... У меня нет программы перед глазами, но я думаю, что это правильно, потому что она не может найти бэкенды. И я экспериментировал с именем папки - как только я ее переименовал, программа не могла найти никаких бэкэндов. Но в любом случае я проверю это дважды. - person mimic; 08.12.2011
comment
Смотрите комментарий к @sjwarner. Спасибо - person mimic; 09.12.2011
comment
Нужно ли что-то добавлять в профайл? - person mimic; 09.12.2011
comment
+1 У меня была аналогичная проблема, когда пример приложения qmediaplayer работал на машине разработки, но не на других. Аудиоклипы не загружались, и в списке не было аудиовыходов. Оказалось, что это вызвано отсутствием каталога phonon_backend - person the_mandrill; 16.02.2012

Прежде всего я бы попробовал Dependency Walker. Я бы запустил его со всеми развернутыми состояниями, которые вы подробно описали выше, и посмотрел, есть ли какие-либо различия между DLL, используемыми приложением в каждом случае.

person sam-w    schedule 07.12.2011
comment
Ах да, я тоже забыл об этом инструменте. Хорошая идея! Спасибо, сегодня вечером выложу обновление. - person mimic; 07.12.2011
comment
Хорошо, я запустил DW для exe-файла. Вроде все нормально, но несколько странностей: 1) Не показывает qtopengl4.dll в дереве. 2) Это показывает, что требуется IESHIM.dll. Что это не значит и что теперь делать? Может я что-то не так запускал? Я не уверен, что правильно понял вашу мысль о разных состояниях. Я только что запустил dll и посмотрел дерево зависимостей. - person mimic; 09.12.2011

У меня была именно эта проблема, и я исправил ее, установив пакет кодеков. Это тот, который я использовал: K-Lite Mega Codec pack (обязательно НЕ устанавливайте два дополнения для браузера в конце)

person Jonathan    schedule 16.03.2016