Qt Multimedia 的变化

Qt 5 的 Qt Multimedia 模块组合 (并替换) 2 个较旧模块,也就是来自 Qt 4 的 Qt Multimedia 模块,和来自 Qt Mobility 的 Qt Multimedia Kit 模块。移植使用来自 Qt 4 的 Qt Multimedia 现有代码可以付出最少努力,但移植使用 Qt Multimedia Kit 代码的过程可能更复杂。 变化特征 章节突显移植相关变化。

另请注意:基于 Widget 的类,譬如 QVideoWidget ,现在在称为 Qt Multimedia 小部件的单独模块中。

Qt 5.0 中的新特征

Qt Multimedia 有许多新特征:

移除特征

已移除先前由 Qt Multimedia 或 Qt Multimedia Kit 提供的许多类或函数。

移除特征 注意事项
QMediaImageViewer 移除此类 (及相关控件和服务),由于它们的功能不适于很多应用程序

变化特征

先前由 Qt Multimedia 或 Qt Multimedia Kit 提供的许多类已以可能影响先前编写代码的方式被改变。该表突显这种改变。

变化特征 注意事项
qmake 工程文件变化 先前,要使用 Qt Multimedia Kit, qmake 工程文件必须包含
CONFIG += mobility
MOBILITY += multimedia
										

现在,只需编写

QT += multimedia
										

或者,若想要使用 Widget 类,

QT += multimedia multimediawidgets
										
名称空间 QtMultimediaKit namespace has been renamed to QMultimedia . This affects a few enumerations, namely SupportEstimate , EncodingQuality , EncodingMode and AvailabilityStatus . Searching and replacing QtMultimediaKit with QMultimedia will greatly aid porting efforts. Metadata have been split off into their own namespace, QMediaMetaData .
元数据类型 In Qt Multimedia Kit, pre-defined metadata keys were enumerations in the QtMultimediaKit namespace. These pre-defined keys have been changed to string literals in the QMediaMetaData namespace, for consistency with extended keys.
元数据访问器方法 In Qt Multimedia Kit, there were two different families of methods to access metadata. Functions such as QMediaObject::metaData() operated on pre-defined metadata using enumerated keys, while functions such as QMediaObject::extendedMetaData() operated on extended metadata using string keys. Qt 5 combines both families into one (e.g. QMediaObject::metaData ()), which can operate on both pre-defined and extended metadata, using string keys.
Qt Metatype 配准 Qt 5 registers many more classes and types with the meta-object system than before. If you have previously applied Q_DECLARE_METATYPE macros to any Qt Multimedia class, you will probably need to remove them.
QSoundEffect availability SoundEffect QML type was publicly accessible in Qt Multimeda Kit, and now the C++ version is officially public too. If your code contains the previously undocumented QSoundEffect , you may need to update it.
摄像头控件 A large number of the camera controls ( QCameraImageProcessingControl , QCameraFocusControl , etc.) have been updated to address a number of design flaws. In particular, a number of discrete accessor methods have been collapsed into parametrized methods, and the ranges or data types of some parameters have been adjusted.