第十章 多媒体 Multimedia
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
多媒体(Multimedia)
Qt Multimedia 中的多媒体元素使播放和记录媒体(如声音、视频或图片)成为可能。解码和编码是通过特定于平台的后端处理的。例如,流行的 GStreamer 框架用于 Linux,WMF 用于 Windows,AVFramework 用于 OS X 和 iOS,Android 多媒体 API 用于 Android。
多媒体元素不是 Qt Quick 核心 API 的一部分。相反,它们是通过导入 Qt Multimedia 提供的单独 API 提供的,如下所示:
播放媒体(Playing Media)
QML 应用程序中多媒体集成的最基本案例是播放媒体。 QtMultimedia 模块通过提供一个专用的 QML 组件来支持这一点:MediaPlayer。
MediaPlayer 组件是将媒体源连接到一个或多个输出通道的非可视项。根据媒体的性质(即音频、图像或视频),可以配置各种输出通道。
在以下示例中,MediaPlayer 在空窗口中播放来自本地URL 的 mp3 示例音频文件:
准备工作:
添加一个音频文件资源
QML代码如下:
在这个例子中,MediaPlayer 定义了两个属性:
source:它包含要播放的媒体的 URL。它可以嵌入 (qrc://)、本地 (file://) 或远程 (https://)。
audioOutput:它包含一个音频输出通道,AudioOutput,连接到一个物理输出设备。默认情况下,它将使用系统默认的音频输出设备。
一旦主组件完全初始化,就会调用播放器的播放函数:
如果要播放图片或视频等视觉媒体,还必须定义一个 VideoOutput 元素以将生成的图像或视频放置在用户界面中。
在以下示例中,MediaPlayer 播放来自本地 URL 的 mp4 示例视频文件,并将视频内容置于窗口的中心:
准备工作:
添加一个视频文件资源
QML代码如下:
videoOutput:它包含视频输出通道VideoOutput,表示为在用户界面中显示视频而保留的视觉空间。
。。。
。。。
VideoOutput 元素不限于与 MediaPlayer 元素结合使用。它还可以与各种视频源一起使用以显示视频流。
例如,我们可以使用 VideoOutput 来显示用户相机的实时视频流。为此,我们将把它与两个组件结合起来:Camera 和 CaptureSession。
QML代码如下:
CaptureSession 组件提供了一种简单的方法来读取摄像机流、捕获静止图像或录制视频。
作为 MediaPlayer 组件,CaptureSession 元素提供了一个 videoOutput 属性。因此我们可以使用这个属性来配置我们自己的可视化组件。
最后,当应用程序加载完毕后,我们就可以开始摄像了:
机元素的主要功能之一是可用于拍照。我们将在一个简单的定格动画应用程序中使用它。通过构建应用程序,您将学习如何显示取景器、在相机之间切换、拍摄照片以及跟踪拍摄的照片。
。。。