Linux下用QT开发音乐播放器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式课程设计报告
—在Linux下开发音乐播放器
李荣贵141578
一.概述
按课程要求,在Linux环境下开发了一款简易的音乐播放器软件,名为“Mini音乐播放器”,运用工具如下:
操作系统:虚拟机中安装xubuntu-14.04.1
IDE:QT Creator3.0.1
该播放器具有如下功能:
1.从本地导入歌曲到歌曲列表中
2.清空歌曲列表
3.删除歌曲列表中选中的歌曲
4.用进度条显示歌曲播放的进度,并显示时间
5.用“播放/暂停”、“停止”、“上一曲”、“下一曲”四个按钮对歌曲进行控制
6.用滑动器对歌曲音量进行控制
7.右键会弹出菜单,可以对程序进行相应的控制
二.项目展示
1.虚拟机截图
2.项目开发界面
3.软件发行后运行情况
隐藏界面部件后
三.程序设计源码分析
接下来展示源代码中的核心代码,其中包括头文件以及cpp文件中的构造函数,源代码我已经上传到网上,有需要的可以下载,链接: /s/1eQgwlUU。
widget.h
-----------------------------------------------------------------------------------------#ifndef WIDGET_H
#define WIDGET_H
#include
#include
#include
namespace Ui{
class Widget;
}
class Widget:public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget*parent=0);
~Widget();
private slots:
void addSongs();//该槽函数功能是从本地导入音乐文件
void playPause();//该槽函数是用来响应“播放/暂停”按钮
void playStop();//该槽函数是用来响应“停止”按钮
void playNext();//该槽函数是用来响应“下一曲”按钮
void playPrevious();//该槽函数是用来响应“上一曲”按钮
void posChanged(qint64pos);//当歌曲播放进度变化时,该槽函数响应,功能是让进度条与歌曲播放进度保持一致
void durChanged(qint64dur);//该槽函数功能是当歌曲总长度改
变(即切歌)时,设置进度条最大值为歌曲长度(以ms为单位)void setPos(int pos);//该槽函数功能是当拖动进度条改变进度时,设置歌曲的播放进度与之保持一致
void clearList();//清空歌曲列表
void delectSong();//删除歌曲列表中选中的歌曲
void volumeSilence();//响应点击音量按钮,进而设置静音/正常
void setV ol(int vol);//拖动音量滑动条时,设置歌曲音量与之保持一致
void hideShow();//隐藏/显示界面上的部件
void redV olume();//减小音量
void addV olume();//增大音量
private:
Ui::Widget*ui;
private:
QMediaPlayer*player;//QT中提供的用来保存源文件的类,该类提供大量API供调用
QMediaPlaylist*playList;//QT提供的保存播放文件的队列
//以下均为弹出菜单中动作
QAction*action_hideShow;
QAction*action_addSongs;
QAction*action_playPause;
QAction*action_stop;
QAction*action_previous;
QAction*action_next;
QAction*action_addVolume;
QAction*action_redV olume;
QAction*action_quit;
protected:
void contextMenuEvent(QContextMenuEvent*);//该函数为虚函数,对其进行重写,可实现右键单击界面时弹出菜单
};
#endif//WIDGET_H
Widget.cpp
-----------------------------------------------------------------------------------------#include"widget.h"
#include"ui_widget.h"
#include
#include
#include
#include
Widget::Widget(QWidget*parent):
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//下面几行作用是插入一张图片到播放器界面作为背景
this->setAutoFillBackground(true);
QPalette palette;
palette.setBrush(QPalette::Background,QBrush(QPixmap(":/images/inter face.jpg")));