#c #qt #windows-7 #phonon
#c #qt #windows-7 #phonon
Вопрос:
У меня есть некоторый код, скомпилированный с использованием Visual Studio 2010 (C ), с Qt для графического интерфейса и Phonon для показа некоторых видеороликов.
Я компилирую и запускаю код на компьютере с Windows XP, и все работает нормально. Видео и элементы управления отображаются правильно, и то же самое на других компьютерах с Windows XP. Но в тот момент, когда я пытаюсь использовать компьютер с Windows 7, видео не отображается. Элементы управления Phonon загружены, я могу настроить размер видеозаписи Phonon, но ничего не отображается. Я использую метод SetFile для указания местоположения файла, и я также пытался (конечно, безуспешно) с setCurrentSource в MediaObject (это работает, хотя, в Windows XP).
Я пробовал разные расположения файлов (абсолютные / относительные), но, похоже, ничего не работает. Кроме того, в XP, когда видео не найдено, отображается предупреждающее сообщение, в то время как в Windows 7 нет сообщения об ошибке, но также не отображается видео. Если я пытаюсь открыть видео с помощью других проигрывателей, они работают нормально (я пробовал также с видео в разных форматах).
Есть идеи о том, что может быть не так? Есть ли что-то, чего мне не хватает в Phonon и Windows 7? Спасибо!
Комментарии:
1. Просто предположение: можете ли вы воспроизвести видео, используя что-то вроде проигрывателя Windows media? Кодеки Windows 7 выполняют больше проверок, чем кодеки XP, поэтому возможно, что в файле что-то не так.
2. Да, я уже пробовал воспроизводить видео с помощью проигрывателя Windows Media и использовать файлы разных форматов, и все работает вне программы. Странно, что он даже не сообщает мне, когда видео не может быть найдено (что происходит в XP). Я собираюсь отредактировать вопрос, чтобы добавить ваш комментарий, я должен был добавить его раньше.
3. Я предполагаю, что компьютер с Windows 7 не является компьютером разработки с установленным Qt? Вы не забыли скопировать внутренний каталог phonon? И, если я не ошибаюсь, это также зависит от библиотеки DLL OpenGL от Qt. Вы это скопировали?
4. Да, ваше предположение верно (W7 без установленного Qt). И вы правы, я не знал, что мне пришлось скопировать внутренний каталог phonon, так что, вероятно, это то, чего мне не хватало. Я протестирую его завтра утром и дам вам знать. Спасибо!
5. Хорошо, я добавил это в качестве ответа с немного более подробной информацией. Как я уже говорил, возможно, вы могли бы заставить свое приложение отображать типы mime. Если есть проблема с серверной частью, она вам ничего не покажет. Если это сработает, он должен предоставить большой список. Удачи и дайте нам знать. 🙂
Ответ №1:
При развертывании вашего приложения на другом компьютере убедитесь, что вы не забыли скопировать серверную часть Phonon. Не только содержащаяся в нем DLL (для меня серверная часть ds), но и сам каталог.
Это
-Application Directory
¦-myexe.exe
¦-phonon_backend
¦-phonon_ds94.dll
Кроме того, серверная часть Phonon в Windows (и Mac, я думаю) использует модуль QtOpenGL. Так что не забудьте скопировать и это. Он может находиться внутри каталога приложения.
В любом случае вы могли бы немного помочь себе, добавив небольшой фрагмент кода, который показывает (возможно, записывает в файл), какие mimetypes доступны. Если он ничего не выдает, проблема в вашем бэкэнде. (Ну, в вашем приложении …)
Это то, что мне пришлось сделать, когда я использовал Phonon для воспроизведения видео внутри моего приложения. Поскольку я только некоторое время назад быстро добавил это в свое приложение, я не уверен на 100%, что это единственный (или даже правильный) способ сделать это, поэтому любой, у кого другое понимание, не стесняйтесь прокомментировать это.