成都理工大学Qt课程设计实验报告音乐播放器


    

    程序设计基础 课程设计(文)

    设计(文)题目
    基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 sources:音乐资源列表实现音乐资源理

    外:
    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 main函数体中加入代码:
    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 sources媒体资源
    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)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    成都理工大学电气工程基础课程设计

     电气工程基础 课程设计(论文)设计(论文)题目 电气控制实验柜的安装及验收 ...

    2年前   
    500    0

    微机原理课程设计音乐播放器

    微机原理课程设计音乐播放器一、课程设计的任务和目的课程设计题目:音乐播放器课程设计的实现目的:本课程设计主要是通过汇编语言用软件编程的方法实现简单的音乐播放功能。通过在《微机原理与接口技术》课...

    1年前   
    308    0

    红外遥控音乐播放器单片机课程设计

     单片机课程设计 项目名称 红外遥控音乐播放器设计 专业班级 通信X班 学生...

    5年前   
    1288    0

    C51音乐播放器课程设计

    课程设计姓名:学号:班级:组员: 目 录1 设计题目.........................................

    4年前   
    504    0

    成都理工大学自荐书

    成都理工大学自荐书第一篇:北京理工大学自荐书北京理工大学自荐书尊敬的北京理工大学招生办负责领导:您好!我是来自素有鱼米花果之乡之称的福建漳州龙海的一名高三学生。我的故乡是一座古韵犹存的海峡西岸...

    11年前   
    443    0

    ping程序课程设计实验报告

    Windows网络程序设计课程设计 课 程 名 称 ping程序设计 姓   名 ...

    2年前   
    468    0

    大学物理实验课程设计实验报告

    大学物理实验课程设计实验报告  北方民族大学    大学物理实验(设计性实验)    实验报告   指导老师:王建明    姓    名:张国生    学    号:XX0233    学  ...

    9年前   
    719    0

    java课程设计实验报告样例

    分数_______嘉应学院计算机学院实验报告课程名称:面向对象程序设计课程设计(Java) 实验名称:”动物换位”程序设计 指导教师:肖振球 实验地点:_居家学习_实验时间:2020.03...

    4年前   
    861    0

    Visual FoxPro 课程设计实验报告

     中国最大的商务办公文档下载基地: http://www.word98.com/ ╔---------------------------------------------...

    10年前   
    11768    0

    车辆管理系统实验报告课程设计

     成绩: 《C++程序设计实践》报告专 业: 软件工程 班 级: 学 号: 姓 ...

    10个月前   
    268    0

    实验报告-电力电子课程设计

    掌握晶闸管仿真模型模块各参数的含义。理解晶闸管的特性。

    4年前   
    1329    0

    成都理工大学工程地质分析原理题库

    成都理工大学工程地质分析原理题库一、术语解释 0.1 工程地质学 0.2工程地质条件 0.3工程地质问题 0.4非线性工程地质学 0.5 机制过程分析法 0.6工程地质勘察 1.1 岩体 1....

    3年前   
    595    0

    成都理工大学双合水电站实习

    本科生实验报告实验课程 双合水电站实习 学院名称 核技术与自动化工程学院 ...

    2年前   
    620    0

    北京理工大学信号与系统实验报告

     本科实验报告实验名称: 信号与系统实验 课程名称:数字信号处理实验时间:任课教师:实验地点:4-442实验教师:实...

    4年前   
    528    0

    安卓音乐播放器需求分析文档

    需 求 分 析 文 档项目名称: 音乐播放器 项目成员: xxx 江西师范大学软件学院 二零...

    2年前   
    452    0

    网页版在线音乐播放器详细设计毕业设计

     本 科 毕 业 设 计 毕业论文题目: 音乐在线点播系统的设计 学 生 姓 名: 学 ...

    5年前   
    3327    0

    基于stm32开发板的MP3音乐播放器设计

    基于STM32开发板的MP3音乐播放器设计 基于STM32开发板的MP3播放器设计 摘要 Stm32系列是由意法半导体...

    2年前   
    1156    0

    驱动程序实验报告操作系统课程设计报告

    操作系统课程设计报告班级: 计科 姓名: 学号: 老师: 时间:2012年X月X日一、设计目的操作...

    1年前   
    296    0

    虚拟仪器课程设计实验报告

    《微机化仪器综合设计与实践》实验指导书大学机电工程学院目录实验六 基于PID算法的可控硅水温自动调节系统设计一、实验目的和要求1.掌握虚拟仪器高级语言Lab VIEW 或Lab Windows...

    4年前   
    841    0

    IPHONE播放器

    iPhone播放器的外观设计 摘要 苹果一直以来都是极简主义设计的推崇者,印象 中无论是iMac还是MacBook亦或是iPod,无论发展到哪一代,都可以算得上是极简风格的代表产品,对于苹果...

    2年前   
    674    0

    文档贡献者

    z***u

    贡献于2022-08-01

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档