type
status
date
slug
summary
tags
category
icon
password
Email
落絮无声春堕泪,行云有影月含羞。——吴文英《浣溪沙》
文章首发于我的个人博客:欢迎大佬们来逛逛
Qt学习的项目地址源码:
Qt-code
luumod • Updated Jul 3, 2023
音频、视频播放
Qt Multimedia模块
Qt Multimedia是一个附加模块,它提供了一组丰富的QML类型和c++类来处理多媒体内容。它包含一个易于使用的API,用于播放音频和视频文件,并在屏幕上呈现这些文件,以及一个全面的API,用于记录来自系统摄像头和麦克风的音频和视频。
本模块的功能分为以下几个子模块:
模块 | 描述 |
Qt Multimedia | 为多媒体特定的用例提供API。 |
Qt Multimedia Widgets | 提供基于小部件的多媒体API。 |
音频播放
QSoundEffect
这个类允许你以较低的延迟方式播放未压缩的音频文件(通常是WAV文件),并且适用于响应用户操作的“反馈”类型的声音(例如虚拟键盘声音,弹出对话框的积极或消极反馈,或游戏声音)。如果低延迟不是很重要,可以考虑使用QMediaPlayer类,因为它支持更广泛的媒体格式,而且资源较少。
这个例子展示了如何播放一个循环的,并设置了音量的效果:
通常情况下,音效应该被重用,这样就可以提前完成所有解析和准备工作,并且只在必要时触发。这有助于降低延迟音频播放。
QMediaPlayer
对于播放不简单、未压缩音频的媒体或音频文件,可以使用QMediaPlayer类型。
Media Player需要连接到一个QAudioOutput对象来播放音频。
下面代码演示了如何播放本地文件:
视频播放
需要 MultimediaWidgets 模块
QMediaPlayer
QMediaPlayer类也能够播放视频,Media Player需要通过
setVideoOutput
函数连接到一个QVideoWidget对象来播放视频。录制音频
要将音频记录到文件中,您需要创建一个capture session(捕获会话),并将 audio input(音频输入)和recorder(记录器)连接到该会话。这些元素是通过QMediaCaptureSession、QAudioInput和QMediaRecorder类实现的。默认构造的QAudioInput选择系统默认音频输入。记录器使用简单的record()和stop()函数来控制记录过程。此外,您还可以使用它来选择输出位置、音频编码器或文件容器格式。
从默认麦克风录制音频的会话在如下所示:
QAudioInput
QAudioInput类允许您从音频设备中读取音频数据。您可以使用它来捕获麦克风或其他音频输入设备的音频,并进行处理或保存。以下是使用QAudioInput录制音频的示例代码:
QMediaRecorder
QMediaRecorder类用于录制音频和视频。您可以使用它来录制音频、视频或同时录制音频和视频。以下是使用QMediaRecorder录制音频的示例代码:
- 作者:Yuleo
- 链接:https://www.helloylh.com/article/qt21
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。