Qt 通过Qt Multimedia 模块提供多媒体功能。Qt multimedia模块基于不同的平台抽象出多媒体接口来实现平台相关的特性和硬件加速。
接口功能覆盖了播放视频音频,录制视频音频,其中包括多种多媒体封装格式,同样支持类似于 camera,耳机,麦克风等设备。
特性:
下面列举一些通过Multimedia APIs可以实现的功能:
- 访问音频输入,输出设备
- 播放低延时音效
- 支持多媒体播放列表
- 音频视频编码
- 收音机功能
- 支持camera的预览,拍照,录像等功能。
- 播放 3D positional audio
- 解码音频视频到内存或者文件
- 获取正在录制或者播放的音频和视频数据
Qt Multimedia 功能模块图
Use case |
Examples |
QML Types |
C++ Classes |
Playing a sound effect |
|
|
QSoundEffect |
Playing low latency audio |
audioinput,spectrum |
|
QAudioOutput |
Playing encoded audio (MP3, AAC etc) |
player |
Audio,MediaPlayer |
QMediaPlayer |
Accessing raw audio input data |
spectrum,audioinput |
|
QAudioInput |
Recording encoded audio data |
audiorecorder |
|
QAudioRecorder |
Discovering raw audio devices |
audiodevices |
|
QAudioDeviceInfo |
Video Playback |
player,qmlvideo,qmlvideofx |
MediaPlayer,VideoOutput,Video |
QMediaPlayer,QVideoWidget,QGraphicsVideoItem |
Video Processing |
qmlvideofx |
MediaPlayer,VideoOutput |
QMediaPlayer,QAbstractVideoSurface,QVideoFrame |
Listening to the radio |
declarative-radio |
Radio,RadioData |
QRadioTuner,QRadioData |
Accessing camera viewfinder |
camera,declarative-camera |
Camera,VideoOutput |
QCamera,QVideoWidget,QGraphicsVideoItem |
Viewfinder processing |
|
Camera,VideoOutput |
QCamera,QAbstractVideoSurface,QVideoFrame |
Capturing photos |
camera,declarative-camera |
Camera |
QCamera,QCameraImageCapture |
Capturing movies |
camera,declarative-camera |
Camera |
QCamera,QMediaRecorder |
3D sound sources |
|
Audio Engine |
AudioEngine,Sound |
|
限制
由于Qt本身不提供任何的编码和解码功能,所以Qt的多媒体模块需要依赖与不同平台的多媒体框架,所以在某一个平台支持何种编码和解码,主要取决与当前系统支持那些编码和解码格式。
扩展
由于不同平台的多媒体框架会有一些特别的功能或者更高效的实现,这时我们可以扩展或者修改Qt Multimedia APIs 实现,具体方法参考Multimedia Backend Development.
Qt4 和 Qt5 多媒体框架的不同
如果之前使用了Qt4的多媒体框架,需要注意了。
Changes in Qt Multimedia 描述了Qt Multimedia更新的内容您。