使用QtMultimediaKit开发多媒体应用
文章信息
Contents |
综述
QtMultimediakit是Qt Mobility中一个用于多媒体开发的API集合,它集合了多媒体内容的播放、录制和管理功能,包括了Qt4.6中引入的基层的、低延时的多媒体开发接口和基于QtMultiMedia模块的高级多媒体开发。而今我们推荐使用QtMultimediaKit进行多媒体开发,而不再是Phonon。
通过QtMultimediaKit APIs,开发者不仅可以实现管理来自本地的图片、视频和音频文件,同样可以对来自远程端或URL的流媒体进行操作。最重要的是,开发者只需很少的代码就可以做到这些;不仅如此,开发者开可以对多媒体的资源进行更深的处理,或者自己来生成一个多媒体文件。
音频
QtMultimediakit中包含了已经熟知的QtMultimedia中的几个底层类:QAudioInput,QAudioOutput,QAudioDeviceInfo,QAudioFormat,通过这几个类可以实现底层的音频录制和播放,例如使用QT MULTIMEDIA API 进行录音和播音;还加入了QAudioCaptureSource 来获取设备中的音频输入端口的信息,以及QAudioEndcoderSettings 来设置音频数据的编码格式和QAudioEndpointSelector选择音频端口,而音频的录制和播放则可以通过QMediaRecorder和QMediaPlayer来实现。
视频
视频的播放同样通过QMediaPlayer实现,值得一提的是QVideoWidget这个类实现了一系列的信号和槽函数从而进行视频资源的控制,比如亮度、色调、饱和度等等。 视频的录制需要捕捉声音和图像,一个QCamara的对象控制摄像头/照相机,其的模式为QCamera::CaptureVideo,一个QMediaRecorder进行录制和一个QCameraViewfinder来显示,详细开发过程参见QtMultimediaKit视频录制和播放以及例程:File:VideoRecorderandPlayer.zip
图片
和视频的录制相比,获取图片不需要声音,将QCamara对象的模式设置为QCamera::CaptureStillImage,同样使用一个QMediaRecorder进行录制和一个QCameraViewfinder来显示。例如:
camera = new QCamera;
viewFinder = new QCameraViewfinder();
viewFinder->show();
camera->setViewfinder(viewFinder);
imageCapture = new QCameraImageCapture(camera);
camera->setCaptureMode(QCamera::CaptureStillImage);
camera->start();
//on half pressed shutter button
camera->searchAndLock();
...
//on shutter button pressed
imageCapture->capture();
//on shutter button released
camera->unlock();
对Camara的支持
视频和图片的录制都需要和照相机/摄像头进行交互,而通过QtMultimediakit可以用很少的代码来实现这些功能。

