QT制作简易音乐播放器报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1.课程实习目的 (1)
1.1了解QT和QT creator (1)
1.2了解Qt phonon的多媒体框架 (1)
2.课程实习题目描述和要求 (1)
2.1 QT制作音乐播放器 (1)
2.2音乐播放器能实现简单的功能 (1)
3.课程实习报告内容 (1)
3.1实验步骤 (1)
3.2程序代码 (2)
3.3实现截图 (4)
4.总结 (5)
5.任务分配 (6)
1.课程实习目的
1.1了解QT和QT creator
Qt 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_OBJECT
public:
explicit yinyue(QWidget *parent = 0);
~yinyue();
private:
Ui::yinyue *ui;
Phonon::MediaObject *mediaObject;
Phonon::AudioOutput *audioOutput;
QList
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_H
2.源文件: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);//进度滑动条