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 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 | 
| 名称空间 | The 
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 | The 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. |