《基于QT设计的音乐播放器 .doc》由会员分享,可在线阅读,更多相关《基于QT设计的音乐播放器 .doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、安 康 学 院嵌入式系统应用期末项目报告课题名称:音乐播放器姓 名:杨珍学 号:院 系:电子与信息工程系专 业:电子信息工程时 间:2016年12月一 系统介绍随着我国社会的快速发展,音乐播放器已经成为人们生活中不可或缺的必备品。它的诞生,让动听的声音有了存储的载体,得以广泛的传播和分享。各种平台开发的音乐播放器层出不穷,但是基于Qt开发的音乐播放器小巧而功能齐全,方便移植到嵌入式平台下或其他平台下,只需一次编译就可在不同平台下运行播放。随着现在科技的发展,越来越多的嵌入式设备已经被广泛应用于生活中,因此嵌入式软件的开发对于嵌入式系统设备的发展有着非常重要的意义。比如linux系统对各种设备的
2、广泛支持性,能方便应用与电脑、手机、汽车及工业等。嵌入式系统在众多领域的应用带来了便利,提高了我们的生活质量,尤其是消费电子产品潜力是巨大的。随着生活的普遍提高,功能强大、专用性强的嵌入式音乐播放器已经成为人们需求的重点,所以,在嵌入式系统上开发音乐播放器是当前热门的技术之一。Qt以其优良的跨平台特性,强大的功能,良好的移植性使之逐渐成为广泛应用的GUI系统,因此,基于Qt的嵌入式系统中实现音乐播放器具有重要的价值。如今,PC机中音频文件越来越多,各种播放器功能特点不同,有些功能强大却占用系统资源多,有些软件小却不支持多种音频格式。通过比较多款音乐播放器的特点,本文提出一套适用于嵌入式系统的媒
3、体播放器框架方案,该方案是基Qt集成开发环境,具有体积小,支持播放格式多,系统资源占用少,支持播放列表等。二. 系统实现1. 系统总体设计本选题是基于QT的音乐播放器,包括功能要求:a、每次播放一首歌曲b、至少可以实现3首歌曲切换;例如,下一首、上一首等基础功能等。具体功能如下:(1)播放状态显示:1用户界面能显示正在被播放的歌曲的进度,显示歌曲的播放状态;2用户能够显示正在被播放歌曲的音量;3用户界面能够显示被播放歌曲的歌名。(2)播放控制:1用户能够控制歌曲停止、暂停与播放;2用户能够切换上一首、下一首歌曲。(3)列表中歌曲管理:在歌曲列表中用户能添加所需的歌曲文件的文件名,并长期保存在该
4、列表中,直到用户删除该列表中的歌曲名。(4)核心播放控件:能够打开MP3文件,并将其解码,然后启动音频硬件播放歌曲。2. 软件设计头文件代码:#ifndef WIDGET_H#define WIDGET_H#include #include #include #include #include #include #include #include #include namespace Ui class Widget;class Widget : public QWidget Q_OBJECTpublic: explicit Widget(QWidget *parent = 0); Widget
5、();private slots: void on_openPushButton_clicked(); void on_stop_clicked(); void on_next_clicked(); void on_pushButton_clicked(); void on_listView_clicked(const QModelIndex &index);private: Ui:Widget *ui; QStringList list; QString filePath100; int k; int j; QMediaPlayer mediaPlayer;#endif / WIDGET_H
6、文件代码:#include widget.h#include int main(int argc, char *argv) QApplication a(argc, argv); Widget w; w.show(); return a.exec();文件代码:#include widget.h#include ui_widget.hWidget:Widget(QWidget *parent) : QWidget(parent), ui(new Ui:Widget) ui-setupUi(this); k = 0;Widget:Widget() delete ui;void Widget:on
7、_openPushButton_clicked() const QStringList musicPaths = QStandardPaths:standardLocations(QStandardPaths:MusicLocation); filePathk = QFileDialog:getOpenFileName(this, tr(Open File), ty() ? QDir:homePath() : (), tr(MP3 files (*.mp3);All files (*.*); list listView - setModel(model); if (!filePathk.isE
8、mpty() dia(QUrl:fromLocalFile(filePathk); (); j = k; k+;void Widget:on_stop_clicked() ();void Widget:on_next_clicked() j+; if(j = k) j = 0; if (!filePathj.isEmpty() dia(QUrl:fromLocalFile(filePathj); (); void Widget:on_pushButton_clicked() j-; if(j 0) j = k - 1; if (!filePathj.isEmpty() dia(QUrl:fro
9、mLocalFile(filePathj); (); void Widget:on_listView_clicked(const QModelIndex &index) QString musicName = filePath(); qDebug() musicName endl; if (!ty() dia(QUrl:fromLocalFile(musicName); (); 三. 系统调试项目结果图一 图二 图三 图四四. 设计总结这个软件设计的目的就是制作一个能够播放音频的播放器。在播放的文件方面,可播放本地的音频文件在功能方面,它具备一些基本的音乐操作处理功能(暂停、播放、音量调节、拖动、停止等),此播放器是在Windows操作系统下的QT5.5集成环境下完成的,QT是跨平台的开发软件,只要将此播放器的代码在其他QT能够运行的平台上重新编译就可以在当前平台上运行。本设计的创新点是系统具有很好的可移植性,它的实现过程以及核心的代码对类似应用具有很好的可重用性,只需通过较小的修改就能移植到不同的操作系统和平台上,可以广泛使用在各种嵌入式系统中,如PDA,智能手机等方面,具有较高的经济价值,同时也可以为开发其他嵌入式系统软件提供参考意见;并支持播放控制、播放列表等功能。虽然设计的音乐播放器版本已经很多,但是能实现并量身打造一款属于自己的播放器,还是很不错的决定。
限制150内