6、Qt Project之音视频播放

音视频播放 

这里简单的制作了一个音乐播放器,播放器的界面设计如下所示:

Step1:这里是界面对应的HTML文件:

View Code

这里使用了Qt的metadata的相关模块,需要调用到metadata的库

在MusicPlayer.pro文件中添加如下内容:

QT += core gui multimedia

这样就添加了工程需要的音视频模块multimedia

Step2:我们需要在mainwindow.h头文件中添加每一个按键信号对应的槽函数声明以及工程中使用的多媒体对象的数据结构如下所示(mainwindow.h文件的内容):

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QMultimedia> #include <QMediaMetaData> #include <QTimer> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_NextSong_clicked(bool checked); //下一首-槽函数声明 void on_PrevSong_clicked(bool checked); // 上一首-槽函数声明 void on_Volume_valueChanged(int value); // 音量改变的槽函数申明 void on_SongChoose_sliderMoved(int position); void on_openlocal_media(); void on_Play_Puase_clicked(bool checked); void on_playProgressUpdate(); void on_MetaDateUpdate(); private: Ui::MainWindow *ui; QMediaPlayer *mediaPlayer; // 多媒体对象变量声明 QMediaPlaylist *localMediaPlaylist; // 多媒体对象列表对象声明 QTimer *progressTimer; // 定时器对象声明 }; #endif // MAINWINDOW_H

Step3:对应的槽函数的实现:

 func1:on_NextSong_clicked   func2:on_PrevSong_clicked   func3:on_Volume_valueChanged   func4:on_SongChoose_sliderMoved   

 func5:on_openlocal_media     func6:on_Play_Puase_clicked    func7:on_playProgressUpdate    func8:on_MetaDateUpdate

View Code

Step4:完成槽函数的实现之后就将对应的型号和槽函数进行连接connect:

connect(this->ui->NextSong,SIGNAL(clicked(bool)),this,SLOT(on_NextSong_clicked())); //Single connect to SLOT
connect(this->ui->PrevSong,SIGNAL(clicked(bool)),this,SLOT(on_PrevSong_clicked()));
connect(this->ui->Volume,SIGNAL(valueChanged(int)),this,SLOT(on_Volume_valueChanged()));
connect(this->ui->SongChoose,SIGNAL(sliderMoved(int)),this,SLOT(on_SongChoose_sliderMoved()));
connect(this->ui->actionOpenLocalMedia,SIGNAL(triggered(bool)),this,SLOT(on_openlocal_media()));
connect(this->ui->Play_Puase,SIGNAL(clicked(bool)),this,SLOT(on_Play_Puase_clicked()));
connect(this->progressTimer,SIGNAL(timeout()),this,SLOT(on_playProgressUpdate())); connect(this->mediaPlayer,SIGNAL(metaDataChanged()),this,SLOT(on_MetaDateUpdate()));

Step5:初始化在mainwindow.h头文件中定义的变量:

this->mediaPlayer = new QMediaPlayer(this);
this->localMediaPlaylist = new QMediaPlaylist(this);
this->mediaPlayer->setPlaylist(this->localMediaPlaylist);
this->mediaPlayer->setVolume(50); //Set default Volume Value

this->progressTimer = new QTimer(this);
this->progressTimer->setInterval(100); //100ms
this->progressTimer->start();

完成以上工作即可编译运行整个工程,这就是简单的多媒体播放器的制作。

猜你喜欢

转载自www.cnblogs.com/uestc-mm/p/8946736.html