程序设计基础 课程设计(文)
设计(文)题目
基QT实现简易音乐播放器
学院名称 信息科学技术
专业名称 软件工程
学生姓名
学生学号
课教师
设计(文)成绩
教务处 制
2015年 X 月 X 日
填写说明
1 专业名称填写专业全称专业方括号标明
2 格式求:格式求:
① A4纸双面印(封面双面印)A4纸蓝黑色水笔书写
② 印排版:正文宋体四号15倍行距页边距采取默认形式(254cm左右254cm页眉15cm页脚175cm)字符间距默认值(缩放100间距:标准)页码五号字底端居中
③ 具体求:
题目(二号黑体居中)
摘(摘二字二号黑体居中隔行书写摘文字部分4号宋体)
关键词(隔行顶格书写关键词三字提炼35关键词分号隔开4号黑体)
正文部分采三级标题
第1章 ××(二号黑体居中段前05行)
11 ×××××三号黑体×××××(段前段05行)
111四号黑体(段前段05行)
参考文献(黑体二号居中段前05行)参考文献五号宋体参参考文献著录规(GBT 7714-2005)
学生学心
通Qt Creator月左右系统学解Qt具完整开发环境优良跨台性移植性特点初步掌握Qt中基类运诸窗体部件QWidgetQMainWindow等学会通QPushBotton窗体中添加钮运QHBoxlayoutQVBoxlayout等窗体控件进行布局学会UI界面文件纯代码编写两种方式应进行设计实现更重深刻明白想精通Qt门语言非夕事情需勤学苦练认真钻研精神
学生(签名):
2015年 月 日
诚信承诺
郑重声明呈交课程报告指导教师指导进行研究工作取研究成果知文中特加标注方外文中包含已发表撰写研究成果工作学文研究做贡献均已报告中作明确说明表示谢意
学生(签名):
课
教师
评语
成绩评定:
课教师(签名):
年 月 日
基QT实现简易音乐播放器
作者姓名: 专业班级:指导教师:
摘
着现科技发展越越嵌入式设备已广泛应生活中提高生活质量时音乐播放器已成生活中缺必备品诞生动听声音存储载体广泛传播分享然种播放器功特点功强占系统资源软件支持种音频格式
文讨Qt Phonon媒体框架基础通音乐播放器基功进行分析界面总体设计提出套适嵌入式系统媒体播放器框架方案终运Qt Creator实现整应通测试运行表明该音乐播放器基功完善运行稳定够较满足实际应需
关键词:嵌入式播放器QtPhonon
目 录
第1章 前 言 2
11 选题 2
111 调查研究 2
112 方案说明 2
第2章 设计实现 4
21 界面设计 4
22 项目框架设计 5
23 系统实现 6
第3章 实验结心体会 14
参考文献 15
第1章 前 言
11 选题
Qt优良跨台特性强功良移植性逐渐成广泛应GUI系统基Qt嵌入式系统中实现音乐播放器具重价值PC机中音频文件越越巧功完善音乐播放器已成生活中缺必备品诞生动听声音存储载体广泛传播分享
111 调查研究
调查研究发现目前种样音乐播放器充斥着互联网种播放器功特点功强占系统资源软件支持种音频格式
通音乐播放器基功进行分析界面总体设计文提出套适嵌入式系统媒体播放器框架方案基Qt集成开发环境实现软件具体积支持播放格式系统资源占少等优点播放器相软件缺点基功然具备功够完善支持播放列表够显示歌曲具体信息等需改进方
112 方案说明
选题基QT音乐播放器包括音频文件添加播放暂停换肤等 具体功:
(1)播放状态显示:
1.户界面显示正播放歌曲进度显示歌曲播放状态
2.户够显示正播放歌曲音量
(2)播放控制:
1.户够控制正播放歌曲进度
2.户调节正播放歌曲音量
3.户够控制歌曲停止暂停播放
(3)换肤
户通换肤钮实现播放器皮肤切换该播放器置五款皮肤
功说明:
Qt应开发中媒体变量音乐播放器开发设计中基Phonon媒体框架媒体变量:
Phonon ::MediaObject *mediaObject:媒体象理媒体源
Phonon ::AudioOutput *audioOutput:音频输出连接物理设备
Phonon ::SeekSlider *seekSlider:播放进度滑竿实现进度条
Phonon ::VolumeSlider *volumeSlider:音量滑竿实现音量调节
QList
外:
QTableWidget *musicTable :音乐资源表格实现音乐资源总体控制
QAction *playAction :播放钮添加音乐表格中实现音乐播放
QAction *pauseAction :暂停钮实现音乐暂停
QAction *stopAction :停止钮实现音乐停止
QAction *addFilesAction :添加文件钮添加音乐表格菜单栏中实现添加音乐
QLCDNumber *timeLcd :电子显示屏显示正播放音乐时间
QPushButton *PbChange :换肤钮实现音乐播放器皮肤更换
具体实现功方法面介绍
第2章 设计实现
21 界面设计
设计界面图示:
界面说明:
播放器户界面UI设计Qt编译形成图形化界面播放器外观界面界面设计UI模式播放器外观设计美工手段进行加工样式表等界面界面钮美化等
左角控件菜单栏Files嵌QAction类型addFiles控件文件添加
面控件timeLcd属QLCDNumber类显示音乐播放时间读
进度条滑块seekSlider属Phonon媒体框架SeekSlider类型 播放进度调节初始值False读写
方三钮均属QAction类分playActionpauseActionstopAction播放控制播放暂停停止初始值均False读写
音量调节滑块volumeSlider属Phonon媒体框架VolumeSlider类型 播放音量调节初始值max读写
QPushButton类型换肤控件PbChange窗口方位置窗体皮肤切换初始值默认第张背景读写
22 项目框架设计
软件设计目制作够播放音频播放器通创建带Phonon模块工程音乐播放器进行设计模块中MediaObject (理媒体源) AudioOutput (连接物理设备)SeekSlider( 实现进度条)QList (实现资源添加) 播放文件方面播放音频文件功方面具备基音乐操作处理功(暂停播放音量调节拖动停止等)
设计该播放器涉种重类:
MediaObject Class :提供够处理媒体播放介面 MediaObject说处理媒体档案基部份接受理MediaSource媒体档案媒体播放暂停停止控制前media物件必须output node连接nodes媒体输出底层硬体例音效卡显示卡等需output node根媒体容目前Phonon两种output node:AudioOutput声音播放VideoWidget影播放
AudioOutput Class :媒体声音送声音输出装置够类似喇叭等输出装置播放媒体资料源必须PhononcreatePath()MediaObject连接
SeekSlider Class :提供滑动slider设定媒体串流播放位置播放进度条会连接MediaObject控制串流目前位置
VolumeSlider Class :提供控制声音装置音量widget会连接MediaObject控制音量输出
QAction Class :QAction类提供抽象户界面actionaction放置窗口部件中应程序通菜单工具栏钮键盘快捷键调通命令播放器通QWidgetaddAction()函数Actions添加窗口部件
23 系统实现
首先音乐播放器具备功图解:
播放
暂停
停止
基操作 音量调节
进度调节
功 开文件
播放时间显示
操作
换肤
面功分版块介绍:
1播放器开发中中文编码main函数中包含头文件
#include
QTextCodec *codec QTextCodec::codecForName(GBK)中文编码
QTextCodec::setCodecForTr(codec)
QTextCodec::setCodecForLocale(codec)
QTextCodec::setCodecForCStrings(codec)
实现中文编码
2Phonon媒体变量:
媒体变量名规划
类型
变量名
概述
Phonon::MediaObject *
musicObject
媒体象
Phonon::MediaObject *
audiooutput
音频输出
Phonon::SeekSlider*
seekSlider
播放进度滑竿
Phonon::VolumeSlider*
volumeSlider
音量调节滑竿
QList
sources
音乐资源
3步骤功实现代码:
新建空Qt项目文件继承QMainWindow添加main函数Phonon工作机制MediaSourse源文件通Path连接AudioOutputAudioOutput数发送相关物理设备果Phonon相关媒体变量需Pro文件中添加行代码:QT + phonon
接着头文件中需包含:
#include
#include
#include
#include
#include
#include
#include
#include
私成员变量:
void setupActions()
void setupMenus()
void setupUi()
PhononSeekSlider *seekSlider 进度条滑块
PhononMediaObject *mediaObject 播放媒体界面
PhononMediaObject *metaInformationResolver
PhononAudioOutput *audioOutput 音频输出
PhononVolumeSlider *volumeSlider 音量调节滑竿
QList
QAction *playAction 播放钮
QAction *pauseAction 暂停钮
QAction *stopAction 停止钮
QAction *addFilesAction 添加文件钮
QLCDNumber *timeLcd 显示屏
QTableWidget *musicTable 音乐表格
QPushButton *PbChange 换肤钮
int myRand(int max) 机数
int miGrade
面功分块介绍:
1 添加文件功
addFilesAction new QAction(tr(添加文件) this)
connect(addFilesAction SIGNAL(triggered()) this SLOT(addFiles()))
void MainWindowaddFiles()
{
QStringList files QFileDialoggetOpenFileNames(this tr(选择文件)添加文件话框
QDesktopServicesstorageLocation(QDesktopServicesMusicLocation))文件址
if (filesisEmpty())果文件空返回
return
int index sourcessize()
foreach (QString string files)
{
PhononMediaSource source(string)
sourcesappend(source)
}
metaInformationResolver>setCurrentSource(sourcesat(index))
}
添加文件钮加入菜单中:
void MainWindowsetupMenus()设置菜单
{
QMenu *fileMenu menuBar()>addMenu(tr(文件))
fileMenu>addAction(addFilesAction)
}
终功效果图:
2显示播放时间功
void MainWindowtick(qint64 time)
{
QTime displayTime(0 (time 60000) 60 (time 1000) 60)
timeLcd>display(displayTimetoString(mmss))
}
功效果图:
3播放进度条功
seekSlider new PhononSeekSlider(this)
seekSlider>setMediaObject(mediaObject)
QHBoxLayout *seekerLayout new QHBoxLayout
seekerLayout>addWidget(seekSlider
功效果图:
4播放控制功
void MainWindowsetupActions()
{
playAction new QAction(style()>standardIcon(QStyleSP_MediaPlay) tr() this)
playAction>setDisabled(true)设置初始点击
pauseActionnewQAction(style()>standardIcon(QStyleSP_MediaPause)tr() this)
pauseAction>setDisabled(true) 设置初始点击
stopAction new QAction(style()>standardIcon(QStyleSP_MediaStop) tr() this)
stopAction>setDisabled(true) 设置初始点击
连接槽函数
connect(playAction SIGNAL(triggered()) mediaObject SLOT(play()))
connect(pauseAction SIGNAL(triggered()) mediaObject SLOT(pause()) )
connect(stopAction SIGNAL(triggered()) mediaObject SLOT(stop()))
connect(addFilesAction SIGNAL(triggered()) this SLOT(addFiles()))
}
播放控制钮添加窗体QToolBar类bar指针布局
QToolBar *bar new QToolBar
bar>addAction(playAction)
bar>addAction(pauseAction)
bar>addAction(stopAction)
功效果图:
5音量滑块功
volumeSlider new PhononVolumeSlider(this)
volumeSlider>setAudioOutput(audioOutput)
volumeSlider>setSizePolicy(QSizePolicyMaximum QSizePolicyMaximum)
QToolBar *bar new QToolBar
QHBoxLayout *playbackLayout new QHBoxLayout
playbackLayout>addWidget(bar)
playbackLayout>addWidget(volumeSlider)
功效果图:
6换肤功
QPushButton *PbChange换肤钮
PbChange new QPushButton(换肤this)
connect(PbChangeSIGNAL(clicked())thisSLOT(slotChange()))
槽函数机数应种事件换背景图片
void MainWindowslotChange()
{
int i myRand(miGrade)
switch (i) {
case 0
setStyleSheet(backgroundimageurl(DQtXuYuXiangPlayerimages2jpg))
break case 1
setStyleSheet(backgroundimageurl(DQtXuYuXiangPlayerimages3jpg))
break case 2
setStyleSheet(backgroundimageurl(DQtXuYuXiangPlayerimages1png))
break case 3
setStyleSheet(backgroundimageurl(DQtXuYuXiangPlayerimages5jpg))
breakdefault
break
}
int MainWindowmyRand(int max)产生4机正整数
{
max 4
int r qrand()
return rmax
}
7点击事件
void MainWindowtableClicked()
{
bool wasPlaying mediaObject>state() PhononPlayingState
mediaObject>stop()
mediaObject>clearQueue()
if (wasPlaying)
mediaObject>play()
else
mediaObject>stop()
}
8窗口设置
QWidget *widget new QWidget
widget>setLayout(mainLayout)
setCentralWidget(widget)
setWindowTitle(播放器)
setMaximumSize(800400)
setMinimumSize(800400)
setStyleSheet(backgroundimageurl(DQtXuYuXiangPlayerimages4jpg))
终界面效果图:
第3章 实验结心体会
该播放器利Phonon媒体框架实现播放MP3WAVWMV等Windows音频格式文件通该程序编写面象程序设计解Qt编程设计更深认识时解Phonon相关知识
课程辛苦劳累收获样巨课程设计中解决问题种成法语言调试中会遇问题查询资料咨询老师学探讨终会理想程序实践中真正提升项目实战中遇课堂遇问题解决问题程正学进步程
回想次学程中遇许问题问题目前知识水法解决解决问题需查找资料请教学程中学前懂知识
总说音乐播放器粗糙功全存细节需优化存许功需完善音乐资源列表实现歌词显示等等问题意识东西需学知识潜需动断探索挖掘
参考文献
[1]霍亚飞吴迪白建等Qt Creator快速入门[M]北京:北京航空航天学出版社2012
[2] Daniel Solin袁鹏飞(译)等24时学通Qt编程[M]北京:民邮电出版社2000
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档