Qt多媒体模块QMediaPlayer

Qt 项目中.pro 文件.h 文件 .cpp 文件各自的作用:
.pro 文件:这是 Qt 项目文件,它包含了项目需要的所有信息,例如项目中包含哪些源文件、需要哪些库以及项目的其他配置信息等。可以把它理解为项目的配置和说明文件。

.h 文件:这是头文件,也叫做头文件。它们包含了类的声明和一些你希望在多个源文件中共享的函数、变量的声明。在这些头文件中,常常包括一些 #define 指令(用于定义常量)和其他类型的配置信息。

.cpp 文件:这些是源文件,它们包含了程序中的函数和类的实现。

main.cpp:该文件通常包含 main() 函数,这是所有 C++ 程序的入口点。在 Qt 应用程序中,main() 函数通常会创建一个 QApplication 对象和你自定义的窗口或对话框对象,然后开始消息循环。

mainwindow.cpp:如果应用程序使用了一个主窗口,那么这个文件就会包含 MainWindow 类的实现。主要的窗口布局和部件创建以及信号-槽的连接等操作都通常在这里进行。


.pro文件:

QT       += core gui widgets
# 添加对Qt核心模块、图形用户界面模块和小部件模块的支持
# core模块提供了Qt的基本的非GUI功能,如信号和槽机制、基本的数据类型、集合类等
# gui模块提供了Qt的GUI功能,如窗口、事件处理、2D图形、字体和文本等
# widgets模块提供了Qt的UI元素,如按钮、文本框、菜单和其他窗口小部件
QT       += multimedia
# 添加对Qt多媒体模块的支持
# multimedia模块提供了音视频播放、录制和处理的功能,以及访问摄像头和收音机等硬件设备的能力

.h文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>            // 包含用于创建主窗口的库
#include <QTextEdit>              // 包含用于创建文本编辑器的库
#include <QPushButton>            // 包含用于创建按钮的库

class QMediaPlayer;  //添加QMediaPlayer的前向声明

// MainWindow 类的定义
class MainWindow : public QMainWindow
{
    Q_OBJECT  // 使用Q_OBJECT宏,使当前类支持Qt特性如信号和槽

public:
    MainWindow(QWidget *parent = nullptr); // 主窗口的构造函数
    ~MainWindow();  // 主窗口的析构函数

// 私有槽函数声明
private slots:
    void onButtonClicked();  // 当按钮点击时执行的槽函数

// 私有成员声明
private:
    QMediaPlayer *player; // 声明一个QMediaPlayer的指针,用于播放音频
    QPushButton *button;  // 声明一个按钮,用户可以通过点击它来触发运行某些操作
    QTextEdit *textEdit;  // 声明一个文本编辑器,可以显示和编辑文本
};

#endif // MAINWINDOW_H  // 结束预处理器的条件编译

mainwindow.cpp文件:

#include <QDebug>
#include "mainwindow.h"
#include <QVBoxLayout>
#include <QMediaPlayer>

// 主窗口的构造函数
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent),  // 调用基类的构造函数
      player(new QMediaPlayer(this)),  // 初始化音频播放器
      button(new QPushButton("Click Me!")),  // 初始化用于点击的按钮
      textEdit(new QTextEdit())  // 初始化文本编辑器
{
    // 设置音频播放器的音频文件来源
    player->setMedia(QUrl::fromLocalFile("E:/suoche.wav"));
    // 连接按钮的点击信号到槽函数 onButtonClicked
    connect(button, &QPushButton::clicked, this, &MainWindow::onButtonClicked);

    // 创建用于主窗口的中心部件和布局管理器
    QWidget *centralWidget = new QWidget(this);
    QVBoxLayout *layout = new QVBoxLayout(centralWidget);

    // 将按钮和文本编辑器添加到布局
    layout->addWidget(button);
    layout->addWidget(textEdit);

    // 设置中心窗口部件
    this->setCentralWidget(centralWidget);
}

// 主窗口的析构函数
MainWindow::~MainWindow()
{
    // 删除按钮和文本编辑器
    delete button;
    delete textEdit;
}

// 点击按钮时执行的槽函数
void MainWindow::onButtonClicked()
{
    // 如果音频正在播放,则暂停音频
    if(player->state() == QMediaPlayer::PlayingState)
    {
        player->pause();
    }else{
         // 否则播放音频
        player->play();
    }
    // 在文本编辑器中添加一行文本
    textEdit->append("锁车完成");

}

main.cpp文件:

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值