龙空技术网

简单的音乐播放器(VS 2010 + Qt 4.8.5)

QT教程 221

前言:

如今看官们对“如何使用vs2010编程”大约比较珍视,大家都需要分析一些“如何使用vs2010编程”的相关资讯。那么小编在网上汇集了一些对于“如何使用vs2010编程””的相关知识,希望大家能喜欢,你们快快来了解一下吧!

昨天历经千辛万苦,配置好了VS 2010中的Qt环境(包括Qt for VS插件),今天决定浅浅地品味一下将两者结合进行编程的魅力。

上网查了一些资料,学习了一些基础知识,决定做一个简单的音乐播放器,主要用到Phonon多媒体框架。

Phonon的工作机制:

使用MediaObject来管理MediaSource即源文件,通过Path连接到AudioOutput,最后是由AudioOutput将数据发送到相关物理设备。

1、新建一个工程:文件->新建->项目:

选择Qt Application,本人命名为Player1;

*注意在此过程一定要把Phonon库选上:

2、创建好项目以后,可以看到VS自动生成了很多文件,先不用管它们:

1)双击Form目录下的player1.ui,进行控件的添加:

说明,从上到下分别是:

一个ListWeight(名:listWidget),

一个VerticalLayout(名:verticalLayout),

四个PushButton(名:addBtn,playBtn,pauseBtn,stopBtn)。

当然,各种属性可以自行设置及更改(颜色,大小等);

2)此时,需要的控件已添加完毕,可以保存,并回到VS主页对其进行右击->编译,ui_player1.h文件得到完善;

3、接下来就是各控件对应功能的实现,并进行信号与槽的连接:

1)先来看头文件"player1.h",类的名称在项目创建过程中也可以进行更改(默认为:项目名称+Class):

#ifndef PLAYER1_H#define PLAYER1_H#include <QMainWindow>#include <Phonon>#include <QList>#include "ui_player1.h"class Player1Class : public QMainWindow{Q_OBJECTpublic:Player1Class(QWidget *parent = 0);~Player1Class();protected:void changeEvent(QEvent *e);private slots:void addFiles();void playFile();void pauseFile();void stopFile();private:Ui::Player1Class *ui;Phonon::MediaObject *mediaObject;Phonon::AudioOutput *audioOutput;Phonon::SeekSlider *seekSlider;QList<Phonon::MediaSource> sourceList;//播放列表};#endif //PLAYER1_H

  2)源文件"player1.cpp"

#include <QtGui>#include "player1.h"#include "ui_player1.h"Player1Class::Player1Class(QWidget *parent) :QMainWindow(parent),ui(new Ui::Player1Class){ui->setupUi(this);connect(this->ui->addBtn, SIGNAL(clicked()), this, SLOT(addFiles()));connect(this->ui->playBtn, SIGNAL(clicked()), this, SLOT(playFile()));connect(this->ui->pauseBtn, SIGNAL(clicked()), this, SLOT(pauseFile()));connect(this->ui->stopBtn, SIGNAL(clicked()), this, SLOT(stopFile()));mediaObject = new Phonon::MediaObject(this);audioOutput = new Phonon::AudioOutput(this);seekSlider = new Phonon::SeekSlider(this);Phonon::createPath(mediaObject, audioOutput);seekSlider->setMediaObject(mediaObject);this->ui->verticalLayout->addWidget(seekSlider);}Player1Class::~Player1Class(){delete ui;}void Player1Class::changeEvent(QEvent *e){QMainWindow::changeEvent(e);switch (e->type()){case QEvent::LanguageChange:ui->retranslateUi(this);break;default:break;}}void Player1Class::addFiles(){QStringList files = QFileDialog::getOpenFileNames(this, tr("Select Files to play"));QString file;foreach(file, files){this->ui->listWidget->addItem(file);sourceList.append(file);}}void Player1Class::playFile(){if(sourceList.isEmpty()){QMessageBox::information(this, tr("no music files"), tr("no files to play"));return ;}mediaObject->setQueue(sourceList);mediaObject->play();this->ui->playBtn->setEnabled(false);this->ui->pauseBtn->setEnabled(true);}void Player1Class::pauseFile(){mediaObject->pause();this->ui->pauseBtn->setEnabled(false);this->ui->playBtn->setEnabled(true);}void Player1Class::stopFile(){mediaObject->stop();this->ui->pauseBtn->setEnabled(true);this->ui->playBtn->setEnabled(true);}

  3)主函数文件"main.cpp"

#include <QtGui/QApplication>#include "player1.h"int main(int argc, char *argv[]){QApplication a(argc, argv);Player1Class w;w.show();return a.exec();}

  4、至此,便可以进行整个项目的编译、运行,结果为:

【领QT开发教程学习资料,点击下方链接莬费领取↓↓,先码住不迷路~】

点击这里:「链接」

标签: #如何使用vs2010编程 #如何使用vs2010 #vs2010换背景颜色 #vs2010怎么更改默认环境设置 #vs2010更改环境设置