Overview | Phonon4Qt5
Phonon4Qt5, as the name suggets, is a version of the Phonon 4 library built against Qt5 rather than Qt4.
It has the same API as a Phonon built against Qt4, but differs in ABI and file names. This allows development and/or delpoyment of your application to happen against either version of Qt.
To build Phonon4Qt5 you will have to pass PHONON_BUILD_PHONON4QT5 to CMake to switch it into Qt5 build mode.
Additionally if you are building against a qt-project provided binary build of Qt5 you may have to define the CMAKE_PREFIX_PATH to make CMake find Qt5. If you are using QMake for your application you will additionally have to instruct cmake to install Qt extensions into the actual Qt directory using PHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT.
For example:
mkdir build5 cd build5 cmake .. -DPHONON_BUILD_PHONON4QT5=ON -DCMAKE_PREFIX_PATH=/opt/Qt5.0.0/5.0.0/gcc_64 -DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT=ON
Phonon4Qt5 installation does not conflict with regular Phonon installations in any way; It uses different file and folder names for everything installed.
Except for a couple of lines in CMake, using Phonon4Qt5 is identical to using Phonon.
To check for Phonon4Qt5 in your CMake project simply use find_package. Variables other than *_FOUND variable will have a generic PHONON prefix making it easier to support both versions without excessive if/else blocks.
To use Phonon4Qt5 in your QMake project you can simply use:
QMake will take care of everything else. Except in certain situations QMake will not be able to find the files necessary to enable a phonon4qt5 build, building phono4qt5 with PHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT, as explained above, should prevent this from happening.
For the actual code there is absolutely no difference between Phonon and Phonon4Qt5.
Consequently the following code example will work with either version: