QMediaPlayer without output
I am facing a problem with QMediaPlayer on Windows Server 2013. When my app play a mp3 file. I received an error message :
"QMediaPlayer object does not have a valid service"
There is not output sound. I don't know what exactly is problem here? Missing DLL or something like that. But it is working correctly on other Windows version.
Thanks in advice!
Is DirectX(DirectShow) installed?
Thank you for your answers.
I have an application which support to play media files. Everything is working well on Windows 7, 8, 10. But when i install it on Windows Server i got problem. I tried to install QT Creator version 5.7.0 in this Windows Server machine. However, i got the same problem. I could not hear sound when run my application directly from QT. The Media service seems not existing.
No. It is not.
Do you have any ideas?
@William.Tran Can you play sound at all on this server machine?
Also: why do you want to play MP3 on a server?
Yes, I could play sound on this server machine. I have installed Winamp and tried to play my audio file, It worked.
I would like my application support on Windows server also.
@William.Tran Did you try what I suggested before (QT_DEBUG_PLUGINS)?
Could you tell me how to config QT_DEBUG_PLUGINS in application? Sorry i don't know how to use it.
@William.Tran You don't do it in your application - it is an environment variable. Either set it in the terminal where you start your app or add it in "Projects/Run/Run Environment" in QtCreator.
I did setting QT_DEBUG_PLUGIN as system variable. Its value is 1. is it correct? I am using Windows Server 2013. Then Could you please tell me how to view the logs file?
@William.Tran Just execute you app and check its output (in QtCreator "Application Output" tab).
I received the log informations related to media server :
"The plugin 'C:/Qt/Qt5.7.0/5.7/msvc2013_64/plugins/mediaservice/qtmedia_audioengined.dll' uses incompatible Qt library. (Cannot mix debug and release libraries.)"
not a plugin
QFactoryLoader::QFactoryLoader() looking at "C:/Qt/Qt5.7.0/5.7/msvc2013_64/plugins/mediaservice/qtmedia_audioengined.pdb"
"Plugin verification data mismatch in 'C:/Qt/Qt5.7.0/5.7/msvc2013_64/plugins/mediaservice/qtmedia_audioengined.pdb'"
not a plugin
QLibraryPrivate::loadPlugin failed on "C:/Qt/Qt5.7.0/5.7/msvc2013_64/plugins/mediaservice/dsengine.dll" : "Cannot load library C:\Qt\Qt5.7.0\5.7\msvc2013_64\plugins\mediaservice\dsengine.dll: The specified module could not be found."
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
As i can see now, it looks like QT could not load the plugin. Do you have any idea?
Cannot mix debug and release libraries.
This says what the problem is: you're mixing debug and release libraries.
How did you deploy your app?
This plug-in is missing: Cannot load library C:\Qt\Qt5.7.0\5.7\msvc2013_64\plugins\mediaservice*dsengine.dll*: The specified module could not be found."
Take a look at http://doc.qt.io/qt-5/windows-deployment.html
I may have problem with deployment process. But this is the log information when i run my project on QT directly. so i think it should work right?
I have checked the DLL in C:\Qt\Qt5.7.0\5.7\msvc2013_64\plugins\mediaservice they are there. But i don't know why they could not be loaded. Is it QT Creator problem ?
I did clean project and run again but still get the same problem. Do you have any suggestion?
Do you have any ideas? Util now i could not resolve this problem on windows server.
@William.Tran Are you trying to execute debug or release build?
Did you try to delete the build directory, execute qmake and then build again?
Besides the log warnings, are you sure the needed backend is in place ?
You could run dxdia and see if all is as expected.
I have tried both of build mode. But it is the same. I also deleted build directory... However i always receive issue above.
I have installed Winamp in this computer. I can play audio file normally. So i think problem not from device. It comes from QT. How does QT load DLL to combine app?
@William.Tran Does C:/Qt/Qt5.7.0/5.7/msvc2013_64/plugins/mediaservice/dsengine.dll exist?
As far as i know, winamp can play mp3 by itself and can work with no directX installed. ?
If true it dont help test.
- How does QT load DLL to combine app?
Its the operating system that does it. DLL handling.
Yes, it is there, But somehow it could not be loaded.
Just to be clear
DirectX(DirectShow) needs to be installed.
yes, the windows server is already installed DirectX 11.