QT制作简易音乐播放器报告.doc_第1页
QT制作简易音乐播放器报告.doc_第2页
QT制作简易音乐播放器报告.doc_第3页
QT制作简易音乐播放器报告.doc_第4页
QT制作简易音乐播放器报告.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录1.课程实习目的11.1了解QT和QT creator11.2了解Qt phonon的多媒体框架12.课程实习题目描述和要求12.1 QT制作音乐播放器12.2音乐播放器能实现简单的功能13.课程实习报告内容13.1实验步骤13.2程序代码23.3实现截图44.总结55任务分配6浙江林学院信息工程学院课程大作业报告1.课程实习目的1.1了解QT和QT creatorQt Creator是跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根据官方描述,Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成任务。1.2了解Qt phonon的多媒体框架 Phonon是什么?Qt从4.4版本开始提供的一套多媒体框架,提供多媒体回放的功能。目前在Qt 4.6中实现多媒体播放图形界面主要依赖于phonon框架,其实qt中还有一个Multimedia模块,帮助文档中对它的描述是:实现底层的多媒体播放功能,在一般情况下上层的接口phonon模块更适合实现这些功能。phonon最初是 一个 源于KDE的项目,为使用音频和视频的应用程序开发提供的一个框架。应用程序不用去管多媒体播放是通过什么实现的(如gstreamer、xine),只需调用相应的接口就行,但这中间需要一个中转,被称为backend。Qt也是通过phonon来实现跨平台的多媒体播放。2.课程实习题目描述和要求2.1 QT制作音乐播放器通过创建带有Phonon模块的工程,对音乐播放器进行设计,主要用到模块中的MediaObject (管理媒体源) AudioOutput (连接物理设备)SeekSlider( 实现进度条)QList (实现播放列表 )2.2音乐播放器能实现简单的功能这个软件设计的目的就是制作一个能够播放音频的播放器。在播放的文件方面,可播放本地的音频文件在功能方面,它具备一些基本的音乐操作处理功能(暂停、播放、音量调节、拖动、停止等)此播放器是在Windows操作系统下的QT4集成环境下完成的,QT是跨平台的开发软件,只要将此播放器的代码在其他QT能够运行的平台上重新编译就可以在当前平台上运行。3.课程实习报告内容3.1实验步骤【步骤一】 新建一个 Qt Gui 工程,在建立过程中需要包含 Phonon 模块,之后生成文件如下图: Qt Gui 工程会生成一个 ui 文件,在这里是 mainwindow.ui 。双击 mainwindow.ui 进行一番简单的布局, 大概地说, Phonon 的工作机制是使用 MediaObject 来管理 MediaSource 即源文件,通过 Path 连接到 AudioOutput ,最后是由 AudioOutput 将数据发送到相关物理设备。 于是有了步骤二。【步骤二】 步骤一是用来实现基本的界面,而步骤二是用代码实现具体的功能。 基于对 Phonon 的认识,有了以下四点: 使用 MediaObject 管理媒体源 使用 AudioOutput 连接物理设备 使用 SeekSlider 实现进度条 使用 QList 实现播放列表 3.2程序代码1.头文件:yinyue.h#ifndef YINYUE_H#define YINYUE_H#include #include #include #include namespace Ui class yinyue;class yinyue : public QDialog Q_OBJECTpublic: explicit yinyue(QWidget *parent = 0); yinyue();private: Ui:yinyue *ui; Phonon:MediaObject *mediaObject; Phonon:AudioOutput *audioOutput; QList sourceList;/播放列表 QMenu mau;private slots: void on_addFiles_clicked(); void on_playFile_clicked(); void on_pauseFile_clicked(); void on_stopFile_clicked(); void on_listWidget_customContextMenuRequested(QPoint pos);#endif / YINYUE_H2.源文件:yinyue.cpp#include yinyue.h#include ui_yinyue.h#include#include yinyue:yinyue(QWidget *parent) : QDialog(parent), ui(new Ui:yinyue) ui-setupUi(this); mediaObject = new Phonon:MediaObject(this);/媒体对象 audioOutput = new Phonon:AudioOutput(this);/音频输出 Phonon:createPath(mediaObject, audioOutput);/连接媒体对象与音频输出 ui-seekSlider-setMediaObject(mediaObject);/进度滑动条 ui-volumeSlider-setAudioOutput(audioOutput);/音量调节yinyue:yinyue() delete ui;void yinyue:on_addFiles_clicked() QStringList files = QFileDialog:getOpenFileNames(this, tr(Selec Files to play); / 使用 QFileDialog 的 getOpenFileNames 方法获取若干个音乐文件, QString file; foreach(file, files)/ 使用 Qt 中的 foreach 遍历每个选中的文件,将其添加到播放列表中。 ui-listWidget-addItem(file); sourceList.append(file); void yinyue:on_playFile_clicked()/首先判断列表是否为空,接着设置播放队列,然后播放当前文件,/最后使得播放按钮不可用,而激活暂停按钮。 if(sourceList.isEmpty() QMessageBox:information(this, tr(no music files), tr(no files to play); return ; mediaObject-setQueue(sourceList);/列表循环 mediaObject-play(); ui-playFile-setEnabled(false);/setEnabled是可用的意思,当为1(true)时可用,当为0(false)时按钮为灰白不可用 ui-pauseFile-setEnabled(true);void yinyue:on_pauseFile_clicked() mediaObject-pause();/暂停当前播放 ui-pauseFile-setEnabled(false);/当暂停按钮不可用的时候 ui-playFile-setEnabled(true);/播放按钮开启void yinyue:on_stopFile_clicked() mediaObject-stop();/停止播放 ui-pauseFile-setEnabled(true);/暂停按钮恢复可用 ui-playFile-setEnabled(true);/播放按钮可用void yinyue:on_listWidget_customContextMenuRequested(QPoint pos) mau.clear(); QMenu *child; child=mau.addMenu(QIcon(:/tupian/_2afc7d1fb5e8980f60d1da316a9f09af.gif),菜单); child-addAction(ui-playFiles); child-addAction(ui-action); mau.move(ui-listWidget-viewport()-mapToGlobal(pos); mau.show();3.3实现截图4.总结通过这次实验使我们对这几个领域有了一定的了解和经验,这对于我们意义重大。程序是完成了,但是该播放器还是有很多需要改进的地方,我们今后会在此程序的基础上进行改进、扩充,争取做的更好。在实现程序过程中,我们组的成员一起探讨、交流想法、找资料、搜歌曲等,让我体会到了团队的力量,这也是我们今后成为一名合格的IT人员应该具有的素质,这个实习给了我们这个机会,我们很庆幸我们抓住个这个机会来锻炼自己。同时,在这个过程中,我们的学习、分析问题、解决问题等方面的能力都有了很大的提高,也对我们的耐心、细心、坚持等素质进行了磨练,我们相信我们能在今后的路上走的更好、更远。5任务分配排序姓名任务量承担任务1234要求:排序按同学所做的工作量从高到低排序,任务量用百分制表示,4人之和为100%参考文献:124小时学通QT编程 著:Daiel Solin 译:袁鹏飞 人民邮电出版社2 KDE2/QT 编程宝典 电子工业出版社3 ARM嵌入式linux系统开发 电子工业出版社本页每位同

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论