qt设计音乐播放器 qt5音乐播放器源代码

第一节 实现基本功能

说明:源代码我已经上传到CSDN网站,请大家到http://download.csdn.net/网站搜索“基于QT的音乐播放器源代码及详细教程”下载。

1.新建工程,基类选择Qwidget。双击打开界面文件,在界面文件中创建label显示时间、若干个toolbutton按钮和一个listWidget列表显示歌曲列表。点击“文件”->“新建”创建QT资源文件,在工程目录下建文件夹“images”, 双击QT资源文件添加前缀“/”,再添加图标文件。

2.单击上一曲按钮,在属性栏设置标题tooltip和图标icon:

界面如下:

3.右键几个按钮,转入槽函数,列表和歌词的信号选择clicked(bool)。

4.工程文件中添加语句

QT+= phonon

对音乐播放器进行设计,主要用到模块中的MediaObject (管理媒体源) AudioOutput(连接物理设备)SeekSlider(实现进度条)QList (实现播放列表 )

大概地说, Phonon的工作机制是使用 MediaObject 来管理 MediaSource即源文件,通过 Path连接到 AudioOutput,最后是由 AudioOutput将数据发送到相关物理设备。

5.修改widget.h头文件

在widget.h头文件添加语句:

#include <phonon>

在头文件声明变量:

private:

 Phonon::MediaObject *audio;//管理媒体源

Phonon::MediaObject *musicInformationMediaObject;//

Phonon::VideoWidget *videoWidget;//

Phonon::AudioOutput *audioOutput;//连接物理设备

Phonon::SeekSlider *seekSlider;//实现进度条

Phonon::VolumeSlider *volumeSlider;//音量调节

QList<Phonon::MediaSource> sourceList;//播放列表

QTimer *timer;

QIcon *iconplay;

QIcon *iconpause;

QAction *play;

QAction *stop;

QAction *open;

QAction *sound;

QAction *exit;

QAction *remove;

头文件声明函数:

public:

void creatActions();//创建动作

6.修改widget.cpp文件

构造函数添加:

this->setWindowTitle(tr("音乐播放器"));//设置标题

audio =new Phonon::MediaObject();//媒体对象

audio->setTickInterval(1);

audioOutput = new Phonon::AudioOutput(Phonon::VideoCategory)[];//音频输出

Phonon::createPath(audio,audioOutput);//连接媒体对象与音频输出

musicInformationMediaObject = new Phonon::MediaObject(this); //音乐信息对象

volumeSlider = new Phonon::VolumeSlider(audioOutput,this); //音量滑动条

volumeSlider->move(190,100);

volumeSlider->resize(50,20);

volumeSlider->setStyleSheet("background-color:rgb(255,255,255,100)");

volumeSlider->setFixedWidth(100);//固定音量条大小

seekSlider = new Phonon::SeekSlider(audio,this); //进度滑动条

seekSlider->move(10,35);

seekSlider->resize(170,20);

seekSlider->setStyleSheet("background-color:rgb(255,255,255,100)");

creatActions();

函数定义:

//播放/暂停

void Widget::on_toolButton_playpause_clicked()

{

if(sourceList.isEmpty())

{

//QMessageBox::information(this,tr("no music files"), tr("no files to play"));

return ;

}

audio->setQueue(sourceList);//列表循环

if(audio->state()== Phonon::PlayingState)

audio->pause();

else

{

audio->play();

}

}

//停止播放

void Widget::on_toolButton_stop_clicked()

{

audio->stop();

}

void Widget::on_toolButton_open_clicked()

{

QStringList files = QFileDialog::getOpenFileNames(this,tr("Selec Files toplay"));

// 使用 QFileDialog 的 getOpenFileNames 方法获取若干个音乐文件,

QString file;

foreach(file, files)// 使用 Qt 中的 foreach 遍历每个选中的文件,将其添加到播放列表中。

{

ui->listWidget->addItem(file);

sourceList.append(file);

}

}

void Widget::creatActions()

{

QIcon iconremove(":/images/remove.png");

QIcon iconstop(":/images/gtk-media-stop.png");

QIcon iconopen(":/images/gtk-open.png");

QIcon iconsound(":/images/sound.png");

QIcon iconexit(":/images/exit.png");

iconpause = new QIcon(":/images/gtk-media-pause.png");

iconplay = new QIcon(":/images/gtk-media-play-ltr.png");

remove = new QAction(iconremove,tr("清空播放列表"),this);

connect(remove,SIGNAL(triggered()),this,SLOT(removeSlot()));

play = new QAction(*iconplay,tr("播放"),this);

connect(play,SIGNAL(triggered()),this,SLOT(on_toolButton_playpause_clicked()));

stop = new QAction(iconstop,tr("停止"),this);

connect(stop,SIGNAL(triggered()),audio,SLOT(stop()));

open = new QAction(iconopen,tr("打开文件"),this);

connect(open,SIGNAL(triggered()),this,SLOT(on_toolButton_open_clicked()));

sound = new QAction(iconsound,tr("静音"),this);

sound->setCheckable(true);

connect(sound,SIGNAL(triggered(bool)),audioOutput,SLOT(setMuted(bool)));

exit = new QAction(iconexit,tr("退出"),this);

connect(exit,SIGNAL(triggered()),this,SLOT(exitSlot()));

}

7.在main.cpp文件中添加中文支持:

#include <QTextCodec>

 QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

8.运行程序,效果如下:

9.到此为止,程序能实现“打开”、“播放”、“暂停”、“停止”、进度条拉动,声音调节,静音功能。下一步工作是完善其他功能及歌词显示。


第二节 完善及拓展功能

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/230249.html

更多阅读

怎样选用联轴器? 膜片联轴器

设计人员在选择联轴器时首先应在已经制定为国家标准、机械行业标准以及获国家专利的联轴器中选择,只有在现有标准联轴器和专利联轴器不能满足设计需要时才自己设计联轴器。我国现已制订了数量相当多的不同品种,在不同结构型式和规格基

用QMediaPlayer实现MP3音乐播放器(C++Qt) qt实现音乐播放器

这个国庆又没闲着,利用中间这几天实现了一个简易的MP3音乐播放器,其音乐播放的核心功能是采用QtQMultimedia中的QMediaPlayer控件(网上使用Phonon框架的较多)。在实现的过程中,界面使用QtDesigner设计,这在很大程度上减小了C++代码量。

1位全加器的设计1 74153设计一位全加器

一、实验目的1.熟悉QUARTUSII软件的使用;2.熟悉实验箱的使用;3.掌握利用层次结构描述法设计电路。二、实验原理及说明由数字电路知识可知,一位全加器可由两个一位半加器与一个或门构成,其原理图如图1所示。该设计利用层次结构描述

VHDL语言学习 VHDL语言实现分频器——源代码篇

--首先贴出源代码--本文可以直接复制粘贴,--然后实现一个48分频的分频器。--但是,注意文件名必须为divider48.vhd----文件名divider48.vhd------------------第一部分是类似C++的#include。。之类的话--建议查询下任何一本具有

声明:《qt设计音乐播放器 qt5音乐播放器源代码》为网友京港晚渔清歌分享!如侵犯到您的合法权益请联系我们删除