Проблема фононов в Windows 7 с кодом, скомпилированным в XP - PullRequest
1 голос
/ 07 мая 2011

У меня есть некоторый код, скомпилированный с использованием Visual Studio 2010 (C ++), с Qt для GUI и Phonon для показа некоторых видео.

Я компилирую и запускаю код на компьютере с Windows XP, и все работает нормально. Видео и элементы управления отображаются правильно и на других компьютерах с Windows XP. Но в тот момент, когда я пытаюсь использовать машину с Windows 7, видео не показывается. Элементы управления Phonon загружены, я могу настроить размер Phonon VideoWidget, но ничего не отображается. Я использую метод SetFile, чтобы указать местоположение файла, и я также попытался (конечно, без удачи) с setCurrentSource в MediaObject (хотя он работает в Windows XP).

Я пробовал разные местоположения файлов (абсолютные / относительные), но, похоже, ничего не работает. Кроме того, в XP, когда видео не найдено, отображается предупреждающее сообщение, а в Windows 7 сообщение об ошибке отсутствует, но также не отображается видео. Если я пытаюсь открыть видео с другими плеерами, они работают нормально (я пробовал также с видео в других форматах).

Есть идеи, что может быть не так? Есть что-то, чего мне не хватает в Phonon и Windows 7? Спасибо!

1 Ответ

3 голосов
/ 07 мая 2011

При развертывании приложения на другом компьютере не забудьте скопировать серверную часть Phonon. Не только DLL, содержащаяся в нем (бэкэнд для меня), но и сам каталог.

То есть

 -Application Directory
 ¦-myexe.exe
 ¦-phonon_backend
  ¦-phonon_ds94.dll

Кроме того, серверная часть Phonon в Windows (и, думаю, Mac) использует модуль QtOpenGL. Так что не забудьте также скопировать это. Это может идти в каталоге приложения.

В любом случае вы могли бы немного помочь себе, добавив небольшой кусочек кода, который показывает (возможно, записывает в файл) , какие mimetypes доступны . Если это ничего не выплевывает, значит, есть проблема с вашим бэкэндом. (Ну, это из твоего заявления ...)

Это то, что я должен был сделать, когда использовал Phonon для воспроизведения видео внутри своего приложения. Поскольку я только быстро добавил это некоторое время назад в свое приложение, я не уверен на 100%, что это единственный (или даже правильный) способ сделать это, поэтому любой, у кого есть другие идеи, может свободно комментировать это.

...