July 1, 2011

microaide microaide
Lab Rat
1 posts

Trouble deploying Phonon media player on Windows

 

I have written an audio media player using phonon. I have compiled it for both Windows (mingw) and Linux. It works great. The Linux version has been installed on several machines and works flawlessly. The Windows version works perfectly on my development machine, but I am having problems installing it on other Windows computers. I am installing the following files:
Application folder:
application executable, necessary PNG files, help file, etc.

Windows\System32 folder:
mingwm10.dll
QtXml4.dll
QtCore4.dll
QtGui4.dll
QtNetwork4.dll
phonon4.dll
msvcrt.dll
libgcc_s_dw2-1.dll
(all of these might not be required, but I will have other Qt applications as well)

The application launches fine, and I can add files to the playlist. But when I try to play a file, it will not play. I believe it never enters the playing state in phonon. This problem happens on other machines where I have tried to install my application. I can install it on my development machine and it works perfectly.

I have tried copying QtOpenGL4.dll into System32, as well as copying phonon_ds94.dll into System32, or into a folder phonon_backend in the application folder. This did not help.

I’m sure I must be missing some DLL, but I can’t figure out which one(s). I’ve also tried the sample Phonon Music Player that comes with QtCreator. Same results, it plays fine on my development machine, but not on another Windows machine.

Help! What file(s) am I missing, or how can I find out?

6 replies

July 1, 2011

Eddy Eddy
Area 51 Engineer
1571 posts

Google for dependencywalker and install.

This tool will tell you what dependencies you need on windows. Maybe one is missing?

 Signature 

Moderator
Qt Certified Specialist
Nokia Qt Ambassador

July 1, 2011

Gerolf Gerolf
Hobby Entomologist
3251 posts

dependency walker will not show, if later loaded dlls are missing. And if he can start the app and add files to his list, dependency walker will find nothing, as everything that is early bound is found.

 Signature 

Nokia Certified Qt Specialist.
Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

July 1, 2011

1+1=10 1+1=10
Ant Farmer
643 posts
Gerolf wrote:
dependency walker will not show, if later loaded dlls are missing. And if he can start the app and add files to his list, dependency walker will find nothing, as everything that is early bound is found.

yes, And Process Explorer [technet.microsoft.com] can be used in this case.

July 1, 2011

jim_kaiser jim_kaiser
Lab Rat
144 posts

Well, I believe phonon uses certain system libraries to do the job. In linux, that is the GStreamer backend which depends on the GStreamer plugins installed on your machine. Something like DirectShow (DS9) is the backend on Windows. Maybe you need to install that or related plugins.

Also, this is the model because, mp3 is a patented technology and Qt cannot by itself provide the mp3 decoding and encoding. It is left to the system backend. You could also try the VLC backend (I’m not sure how stable it is though..).

July 1, 2011

jim_kaiser jim_kaiser
Lab Rat
144 posts

DirectShow is part of DirectX I guess.. so make sure DirectX9 is installed on the target machine.

July 1, 2011

microaide microaide
Lab Rat
1 posts

Thank you all for your suggestions. I solved my problem. I had already used dependency walker and installed all DLLs that it showed were required, and no DLLs were coming up missing when the application was launched. Process explorer was very helpful. I compared the loaded DLLs on a working and non-working machine, and found what I had done wrong. phonon_ds94.dll must be installed in a folder “phonon_backend” located under the application programs folder. I had put in in a folder called “phononbackend” by mistake. As soon as I corrected the name of that folder, my player started working. Process explorer showed that phonon_ds94.dll was not loading on the non-working machine.

On the development machine it was loading phonon_ds94.dll from C:\Qt\2010.05\qt\plugins\phonon_backend.

 
  ‹‹ mDNS query...      Windows PE ››

You must log in to post a reply. Not a member yet? Register here!