Phonon
Overview | Phonon4Qt5
Phonon4Qt5, as the name suggests, 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.
Building
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 KDE_INSTALL_USE_QT_SYS_PATHS.
For example:
mkdir build5 cd build5 cmake .. -DPHONON_BUILD_PHONON4QT5=ON -DCMAKE_PREFIX_PATH=/opt/Qt5.0.0/5.0.0/gcc_64 -DKDE_INSTALL_USE_QT_SYS_PATHS=ON
Phonon4Qt5 installation does not conflict with regular Phonon installations in any way; It uses different file and folder names for everything installed.
Usage
Except for a couple of lines in CMake, using Phonon4Qt5 is identical to using the (old) Qt4 Phonon.
CMake
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.
- Note
- While you were able to get away with not adding PHONON_INCLUDE_DIR to CMake's include_directories on various Unix systems, this will not work with Phonon4Qt5; It is using nested directories to achieve 100 % source compatibility with Phonon, so your compiler will not be able to find phonon/* includes by simply looking in standard paths.
QMake
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 KDE_INSTALL_USE_QT_SYS_PATHS, as explained above, should prevent this from happening.
C++
For the actual code there is absolutely no difference between Phonon and Phonon4Qt5.
Consequently the following code example will work with either version:
Documentation copyright © 1996-2024 The KDE developers.
Generated on Mon Nov 18 2024 12:18:23 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.