📂
Qt
  • 【Qt Quick 编程指南】
  • 第一篇 基本应用篇
    • 第1章 Qt Creator简介
      • 1.1 注意事项说明
      • 1.2 Qt Creator 是什么
      • 1.2 IDE集成开发环境准备
      • 1.3 Qt Creator 环境介绍
      • 1.4 Qt工具简介
      • 1.5 Git的使用
    • 第2章 Qt Quick
      • 2.1 Qt Quick 是什么
      • 2.2 Qt Quick 能做什么
      • 2.3 QML支持的平台
      • 2.3 第一个Qt Quick程序
    • 第3章 Hello World
      • 2.1 编写Hello World 程序
      • 2.2 程序的运行与发布
      • 2.3 Hello World程序源码与编译过程详解
      • 2.4 项目模式和项目文件介绍
    • 第4章 窗口部件
      • 3.1 基础窗口部件QWidget
      • 3.2 对话框QDialog
      • 3.3 其他窗口部件
    • 第5章 布局管理
      • 4.1 布局管理系统
      • 4.2 设置伙伴
      • 4.3 设置Tab键顺序
      • 4.4 Qt Creator中的定位器
      • 4.5 案例-登录窗口布局
    • 第6章 应用程序主窗口
      • 5.1 主窗口框架
      • 5.2 富文本处理
      • 5.3 拖放操作
      • 5.4 打印文档
    • 第7章 事件系统
      • 6.1 Qt中的事件
      • 6.2 鼠标事件和滚轮事件
      • 6.4 定时器事件与随机数
      • 6.5 事件过滤器与事件的发送
    • 第8章 Qt对象模型与容器类
      • 7.1 对象模型
      • 7.2 容器类
      • 7.1 对象模型
      • 7.3 正则表达式
      • 7.2 容器类
      • 7.3 正则表达式
    • 第9章 界面外观
      • 8.1 Qt风格
      • 8.2 Qt样式表
      • 8.1 Qt风格
      • 8.3 特殊效果窗体
      • 8.2 Qt样式表
      • 8.3 特殊效果窗口
    • 第10章 国际化、帮助系统与Qt插件
      • 9.1 国际化
      • 9.2 帮助系统
      • 9.3 创建Qt插件
  • 第二篇 图形动画篇
    • 第11章 2D绘图
      • 10.1 基本绘制和填充
      • 10.2 坐标系统
      • 10.3 其他绘制
      • 10.4 双缓冲绘图
      • 10.5 绘图中的其他问题
    • 第12章 图形视图、动画和状态机框架
      • 11.1 图形视图、动画和状态机框架
      • 11.2 图形视图框架的坐标系统和事件
      • 11.3 图形视图框架的其他特性
      • 11.4 动画框架
      • 11.5 状态机框架
    • 第13章 3D绘图
      • 12.1 使用OpenGL绘制图形介绍
      • 12.2 绘制多边形
      • 12.3 绘制彩色3D图形
      • 12.4 使用纹理贴图
  • 第三篇 影音媒体篇
    • 第14章 音视频播放
      • 13.1 播放音频
      • 13.2 播放视频
      • 13.3 QmediaPlayer
    • 第15章 相机和音频录制
      • 14.1 使用相机
      • 14.2 使用音频
  • 第四篇 数据处理篇
    • 第16章 文件、目录和输入/输出
      • 15.1 文件和目录
      • 15.2 文本流和数据流
      • 15.3 其他相关类
    • 第17章 模型/视图编程
      • 16.1 模型/视图架构
      • 16.2 模型类
      • 16.3 视图类
      • 16.4 委托类
      • 16.5 项目视图的便捷类
      • 16.6 在项目视图中启用拖放
    • 第18章 数据库和XML
      • 17.1 数据库
      • 17.2 XML
  • 第五篇 网络通信篇
    • 第19章 网络编程
      • 18.1 网络访问接口
      • 18.2 获取网络接口信息
      • 18.3 UDP
      • 18.4 TCP
    • 第20章 进程和线程
      • 19.1 进程
      • 19.2 线程
    • 第21章 Qt WebEngine
      • 20.1 Qt WebEngine
      • 20.2 基于Qt WebEngine Widget的网页浏览器
  • ※Qt6 QML 实战手册※
    • 第一章 基础设置
      • 1.1 项目注释
      • 1.2 修改程序名字
      • 1.3 程序打包
      • 1.4 Qt Design Studio 结合 Qt Creator使用
      • 1.5 版本控制(GitHub)
    • 第二章 项目文件详解
      • 2.1 CMakeLists.txt
    • 第三章 UI设计
      • 3.1 常用控件大全
    • 第十章 多媒体 Multimedia
    • 异常集合总结
  • ※项目案例※
    • ZSLinux开发
    • DCShell开发
    • DCSft开发
    • Qt程序打包
    • BarTenderPrinter
    • 自动补卡考勤程序
    • 打卡机客户端程序
    • SQL考勤补卡脚本
    • 编译 libssh2
  • 常用知识点总结
    • 【Qt+QML+CMake 开发学习进度】
    • Qt6 开发知识点总结
    • Qt creator 快捷键
    • Qt Design Studio 控件大全
    • QT中添加图片资源文件
    • Qt Creator配合Qt Design Studio
    • 学习参考资料
由 GitBook 提供支持
在本页
  • (一)播放音频(Playing audio)
  • (二)播放视频(Playing a video)
  • (三)控制回放(Controlling the playback)
  • (四)声音特效(Sound Effects
  • (五)视频流(Video Streams)
  • (六)拍摄图像(Capturing Images)

这有帮助吗?

  1. ※Qt6 QML 实战手册※

第十章 多媒体 Multimedia

上一页3.1 常用控件大全下一页异常集合总结

最后更新于5个月前

这有帮助吗?

参考资料:

多媒体(Multimedia)

Qt Multimedia 中的多媒体元素使播放和记录媒体(如声音、视频或图片)成为可能。解码和编码是通过特定于平台的后端处理的。例如,流行的 GStreamer 框架用于 Linux,WMF 用于 Windows,AVFramework 用于 OS X 和 iOS,Android 多媒体 API 用于 Android。

多媒体元素不是 Qt Quick 核心 API 的一部分。相反,它们是通过导入 Qt Multimedia 提供的单独 API 提供的,如下所示:

import QtMultimedia

播放媒体(Playing Media)

QML 应用程序中多媒体集成的最基本案例是播放媒体。 QtMultimedia 模块通过提供一个专用的 QML 组件来支持这一点:MediaPlayer。

MediaPlayer 组件是将媒体源连接到一个或多个输出通道的非可视项。根据媒体的性质(即音频、图像或视频),可以配置各种输出通道。

(一)播放音频(Playing audio)

在以下示例中,MediaPlayer 在空窗口中播放来自本地URL 的 mp3 示例音频文件:

准备工作:

  • 添加一个音频文件资源

QML代码如下:

import QtQuick
import QtMultimedia
Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    MediaPlayer {
    id:player
    source: "qrc:/001.mp3"
    audioOutput: AudioOutput{

    }

    Component.onCompleted: {
    player.play()
    }
    }
}

在这个例子中,MediaPlayer 定义了两个属性:

  • source:它包含要播放的媒体的 URL。它可以嵌入 (qrc://)、本地 (file://) 或远程 (https://)。

  • audioOutput:它包含一个音频输出通道,AudioOutput,连接到一个物理输出设备。默认情况下,它将使用系统默认的音频输出设备。

一旦主组件完全初始化,就会调用播放器的播放函数:

Component.onCompleted: {
    player.play()
    }

(二)播放视频(Playing a video)

如果要播放图片或视频等视觉媒体,还必须定义一个 VideoOutput 元素以将生成的图像或视频放置在用户界面中。

在以下示例中,MediaPlayer 播放来自本地 URL 的 mp4 示例视频文件,并将视频内容置于窗口的中心:

准备工作:

  • 添加一个视频文件资源

QML代码如下:

import QtQuick
import QtMultimedia
Window {
    width: 1920
    height: 1080
    visible: true
    title: qsTr("Hello World")

    MediaPlayer {
     id:player
     source: "qrc:/Res/001.mp4"
    audioOutput: AudioOutput{
    }
    videoOutput: vdo

    }

    VideoOutput{
    id:vdo
    anchors.fill: parent
    anchors.margins: 20
    }
    Component.onCompleted: {
      player.play()
    }
}

videoOutput:它包含视频输出通道VideoOutput,表示为在用户界面中显示视频而保留的视觉空间。

请注意,VideoOutput 组件是一个可视项。因此,它必须在可视组件层次结构中创建,而不是在 MediaPlayer 本身中创建。

(三)控制回放(Controlling the playback)

。。。

(四)声音特效(Sound Effects

。。。

(五)视频流(Video Streams)

VideoOutput 元素不限于与 MediaPlayer 元素结合使用。它还可以与各种视频源一起使用以显示视频流。

例如,我们可以使用 VideoOutput 来显示用户相机的实时视频流。为此,我们将把它与两个组件结合起来:Camera 和 CaptureSession。

QML代码如下:

import QtQuick
import QtMultimedia

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    CaptureSession{
        id:capturesession
        camera: Camera{

        }

    videoOutput: output
    }
    VideoOutput{
      id:output
      anchors.fill: parent
    }
    Component.onCompleted: capturesession.camera.start()
}

CaptureSession 组件提供了一种简单的方法来读取摄像机流、捕获静止图像或录制视频。

作为 MediaPlayer 组件,CaptureSession 元素提供了一个 videoOutput 属性。因此我们可以使用这个属性来配置我们自己的可视化组件。

最后,当应用程序加载完毕后,我们就可以开始摄像了:

Component.onCompleted: captureSession.camera.start()

根据您的操作系统,此应用程序可能需要敏感的访问权限。如果您使用 qml 二进制文件运行此示例应用程序,将自动请求这些权限。 但是,如果您将其作为独立程序运行,您可能需要首先请求这些权限(例如:在 MacOS 下,您需要一个与应用程序捆绑在一起的专用 .plist 文件)。

(六)拍摄图像(Capturing Images)

机元素的主要功能之一是可用于拍照。我们将在一个简单的定格动画应用程序中使用它。通过构建应用程序,您将学习如何显示取景器、在相机之间切换、拍摄照片以及跟踪拍摄的照片。

。。。

https://zhuanlan.zhihu.com/p/518446503