A number of classes previously offered in Qt Multimedia or Qt Multimedia Kit have changed in ways that may affect previously written code. There may be other changes (like new features) that will not affect previously written code, and they are documented elsewhere.
Changed feature | Notes |
qmake .pro file changes | If you've used QtMultimediaKit in the past, you needed to put CONFIG += mobility
MOBILITY += multimedia
in your .pro file. Now you need to use:
QT += multimedia
or
QT += multimedia multimediawidgets
if you need to use the widget classes.
|
Namespace changes | For Qt Multimedia Kit the majority of the classes were in the normal Qt namespace (usually nothing, unless built specially). There was a Qt Multimedia Kit namespace for several enumerations. This namespace has now changed to Qt Multimedia, so if you've used one of the SupportEstimate, EncodingQuality, EncodingMode or AvailabilityError enumerations you'll need to change your code. In fact, running a global search and replace on QtMultimediaKit (to replace it with QtMultimedia) will go a long way with porting your code. |
Meta-data enumeration changes | In Qt Multimedia Kit the available meta-data keys were in an enumeration in the QtMultimediaKit namespace. These meta-data keys have been changed to string literals in the QtMultimedia::MetaData namespace - generally your source code will mostly be compatible unless you have created variables or parameters with the QtMultimedia::MetaData type - you should replace these with QString. |
Meta-data method changes | In Qt Multimedia Kit the available meta-data was split between methods to access standard, pre-defined keys, and methods to access extensible free form key meta-data. These have been combined into a single method to access meta-data given a string key, and a list of pre-defined keys. If you've used the extendedMetaData method of any class, you will need to change your code to combine the standard and extended metadata methods. |
Qt Metatype registration | In Qt Multimedia 5.0 we've tried to make sure that we register any classes or types that would be useful to use in cross process signals or in QVariants. If you've previously added Q_DECLARE_METATYPE macros for any Qt Multimedia class you will probably need to remove them. |
Video QML type | If you've previously used Video you may be excited to learn that it should still work as expected, but you also have the choice of using MediaPlayer and VideoOutput together for more flexible and advanced use cases. |
QSoundEffect | The SoundEffect QML type was public and accessible in Qt Multimeda Kit, and now the C++ version is also available. If you managed to use the private class previously, you'll need to update your code. |
Camera controls | A large number of the camera controls (QCameraImageProcessingControl, QCameraFocusControl etc) have been updated to address a number of design flaws. If you have previously been using these classes, you should check the new design. In particular, a number of discrete accessor methods have been collapsed into parametrized methods, and the range or data type of some parameters has been adjusted. |