You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下Qt 6及以上版本multimedia模块故障及音频播放咨询

Ubuntu 22.04下Qt 6+多媒体模块报错与音频播放解决方案

先解决"Unknown module(s) in QT: multimedia"问题

  • 补全系统依赖:Qt 6在Linux上依赖GStreamer处理多媒体,终端执行以下命令安装完整依赖:
    sudo apt install libqt6multimedia6 libqt6multimediawidgets6 libqt6multimediaquick6 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly
  • 检查Qt安装组件:打开Maintenance Tool,找到你使用的Qt 6.x版本,确认Additional Libraries > Qt Multimedia组件已勾选安装——很多时候该组件默认不会被包含在基础安装包内。
  • 验证Kit配置:在Qt Creator中进入「工具>选项>构建和运行>Kit」,选中当前使用的Kit,查看对应Qt版本的安装路径下是否存在lib/cmake/Qt6Multimedia目录,若不存在则说明该Qt版本未安装Multimedia组件,需重新通过Maintenance Tool添加。
  • 清理缓存重构建:删除项目目录下以build-开头的文件夹,重新执行qmake并构建项目,旧缓存常导致模块识别异常。

实现Qt 6+音频播放(支持MP3/WAV)

模块正常识别后,使用Qt 6的QMediaPlayer+QAudioOutput新API即可完成播放:

  1. .pro文件中确保添加以下配置:
QT += core gui multimedia widgets
  1. 简单播放示例代码:
    头文件:
#include <QMediaPlayer>
#include <QAudioOutput>
#include <QPushButton>
#include <QWidget>

class AudioPlayer : public QWidget
{
    Q_OBJECT
public:
    explicit AudioPlayer(QWidget *parent = nullptr);

private slots:
    void playAudio();

private:
    QMediaPlayer *player;
    QAudioOutput *audioOutput;
};

源文件:

#include "audioplayer.h"

AudioPlayer::AudioPlayer(QWidget *parent) : QWidget(parent)
{
    player = new QMediaPlayer(this);
    audioOutput = new QAudioOutput(this);
    player->setAudioOutput(audioOutput);

    QPushButton *playBtn = new QPushButton("播放音频", this);
    connect(playBtn, &QPushButton::clicked, this, &AudioPlayer::playAudio);
}

void AudioPlayer::playAudio()
{
    // 替换为你的音频文件本地路径,MP3或WAV格式均支持
    player->setSource(QUrl::fromLocalFile("/home/yourname/Music/test.mp3"));
    audioOutput->setVolume(0.7); // 音量范围0-1
    player->play();
}
  • 备注:MP3解码依赖之前安装的GStreamer插件,WAV为无压缩格式,无需额外插件即可直接播放。

内容的提问来源于stack exchange,提问作者asi siyah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:27:28