You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于Qt6 Multimedia模块的疑问:是否移除Multimedia API?播放音频需用三方库?

Qt6 Multimedia API相关问题解答

你的判断其实不太准确哦~Qt6并没有移除Multimedia相关功能,官方依然提供了完整的多媒体API,只是和Qt5相比,模块的拆分方式有了变化,完全不需要依赖第三方库就能完成音频播放这类基础任务。

1. Qt6 Multimedia模块的现状

Qt6将原有的多媒体功能拆分成了几个独立的官方模块:

  • Qt Multimedia:提供核心的多媒体处理能力,包括音频/视频播放、捕获等
  • Qt Multimedia Widgets:针对Widget类型应用的多媒体UI组件(比如视频播放控件)

这些模块都是Qt官方维护的,在Qt6.0及后续版本中稳定可用。

2. 实现简单音频播放的步骤

第一步:添加模块依赖

如果是QMake项目,在.pro文件中添加:

QT += multimedia multimediawidgets

如果是CMake项目,则在CMakeLists.txt中添加:

find_package(Qt6 REQUIRED COMPONENTS Multimedia MultimediaWidgets)
target_link_libraries(your_project_name PRIVATE Qt6::Multimedia Qt6::MultimediaWidgets)

注意:安装Qt时要确保勾选了Multimedia相关组件,默认安装可能不会包含,需要手动选择

第二步:编写播放代码

使用Qt6的QMediaPlayerQAudioOutput(Qt6新增的音频输出控制类)就能轻松实现音频播放,示例代码如下:

#include <QMediaPlayer>
#include <QAudioOutput>
#include <QUrl>

// 在类的初始化逻辑中添加
QMediaPlayer* audioPlayer = new QMediaPlayer(this);
QAudioOutput* audioOutput = new QAudioOutput(this);

// 关联播放器和音频输出
audioPlayer->setAudioOutput(audioOutput);
// 设置音频源(本地文件或网络URL都支持)
audioPlayer->setSource(QUrl::fromLocalFile("/Users/you/Music/test.mp3"));
// 调整音量(范围0.0到1.0)
audioOutput->setVolume(0.6);
// 开始播放
audioPlayer->play();

3. 平台相关小提示

不同操作系统可能需要额外的基础依赖(比如Linux上需要安装GStreamer相关包),但这些都是Qt官方文档明确说明的配置项,不需要额外引入第三方多媒体库来替代Qt的原生功能。

内容的提问来源于stack exchange,提问作者Igor Mironchik

火山引擎 最新活动