pm3播放器信息工程课程设计说明书大学毕设论文Word文件下载.docx

上传人:b****5 文档编号:20260015 上传时间:2023-01-21 格式:DOCX 页数:15 大小:136.50KB
下载 相关 举报
pm3播放器信息工程课程设计说明书大学毕设论文Word文件下载.docx_第1页
第1页 / 共15页
pm3播放器信息工程课程设计说明书大学毕设论文Word文件下载.docx_第2页
第2页 / 共15页
pm3播放器信息工程课程设计说明书大学毕设论文Word文件下载.docx_第3页
第3页 / 共15页
pm3播放器信息工程课程设计说明书大学毕设论文Word文件下载.docx_第4页
第4页 / 共15页
pm3播放器信息工程课程设计说明书大学毕设论文Word文件下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

pm3播放器信息工程课程设计说明书大学毕设论文Word文件下载.docx

《pm3播放器信息工程课程设计说明书大学毕设论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《pm3播放器信息工程课程设计说明书大学毕设论文Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。

pm3播放器信息工程课程设计说明书大学毕设论文Word文件下载.docx

4.主要参考文献:

VisualC++课程设计案例精编(第二版)

5.设计成果形式及要求:

程序运行结果;

课程设计说明书。

6.工作计划及进度:

2016年5月30日~2016年6月1日:

查资料

2016年6月2日~2016年6月7日:

在指导教师指导下设计方案及程序

2016年6月8日~2016年6月15日:

学生上机调试程序,指导教师辅导

2016年6月16日~2016年6月18日:

完成课程设计说明书

2016年6月19日:

答辩

系主任审查意见:

签字:

年月日

目录

1.摘要---------------------------------------------------1

1.1)设计内容--------------------------------------------1

1.2)MCI简介--------------------------------------------1

1.2-①任务-----------------------------------------------2

1.2-②各模块功能设计-------------------------------------3

1.2-③操作步骤------------------------------------------4

1.2-④函数代码------------------------------------------5

2.课程设计分析与结果------------------------------------13

3.总结--------------------------------------------------14

参考文献------------------------------------------------14

1.摘要

利用MFC应用程序、媒体控制接口MIC的基本知识,设计一个MP3播放器。

要求能够播放常用Windows音频格式的文件;

实现播放控制:

播放、暂停、停止等;

实现音量控制:

静音、声音放大减小;

实现播放列表管理:

加入文件、加入目录、删除文件等功能

关键词:

MP3播放器的设计

设计目的利用VC++开发一个支持wav、mp3、wma等不同音频格式的媒体播放器。

通过课程设计掌握多媒体编程的基本原理。

1)设计内容

MP3播放器的设计是利用MFC应用程序、媒体控制接口MIC的基本知识而设计的。

(MFC简介)MFC是VisualC++是核心。

MFC类库将所有图形用户界面的元素如窗口、菜单和按钮等都以类的形式进行了封装,MFCAppWizard向导根据继承性利用MFC派生出自己的类,并对Windows应用程序进行了分解,利用MFC派生类对应用程序重新进行组装,同时还规定了应用程序中各个MFC派生类对象之间的相互联系,实现了标准Windows应用程序的功能,这就是向导生成的所谓MFC应用程序框架。

每个MFC类都包括了一些函数,函数放到类中,符合C++编程方法。

这些函数,必须通过类定义对象才能使用

2)MCI简介

MCI(MediaControlInterface)媒体控制接口是MircroSoft提供的一组多媒体设备和文件的标准接口,它的好处是可以方便地控制绝大多数多媒体设备包括音频、视频、影碟、录像等多媒体设备,而不需要知道它们的内部工作状况。

它所支持的媒体格式包括mp3、avi、wav、mpeg等等[2]。

音频技术发展较早,几年前一些技术已经成熟并产品化,音频技术主要包括四个方面:

音频数字化、语音处理、语音合成及语音识别。

音频文件包括多种格式的文件,MP3就是其中的一种。

MP3的全称是MovingPictureExpertsGroup,AudioLayerⅢ,它所使用的技术是在VCD(MPEG-1)的音频压缩技术上发展出的第三代,而不是MPEG-3。

MP3是一种音频压缩的国际技术标准,它一般需要MP3播放器来读取

1 任务:

1)编程实现一个可支持多种音频格式的媒体播放器,其基本功能包括媒体播放、音量调节、播放进度选择、暂停、停止以及歌曲信息的查询与添加等;

2)给出程序的总体设计和详细设计,要求程序总体架构

3)图详细设计的流程图说明等

表一

2 各模块功能设计

2.1处理“打开”按钮

单击“打开”按钮后,在onfilechoice()函数中,首先对文件类型进行过滤,调用GetSystemMene()函数打开对话框选择一个媒体文件,通过GetPathName()函数获取文件路径,通过onfilechoice()函数获取文件名后,调用DisplayInfo()函数在StaticText控件上显示“你选择的歌曲是(文件名)”,然后利用pause()函数设置“暂停”按钮以及“停止”按钮不可用。

2.2处理“播放”按钮

单击“播放”按钮后,在onplay()函数中,通过调用CMP3Dlg类的GetPathName函数获取刚才选择的文件路径以及文件名,调用该类的voidplay()函数播放歌曲,此时调用GetDlgItemText(IDC_pause,strtemp)获取按钮状态,然后利用SetDlgItemText()函数设置“播放”按钮不可用。

2.3处理“暂停”按钮

单击“暂停”按钮后,在Onstop()函数中,首先通过调用CMP3Dlg类的pause()函数暂停正在播放的歌曲,GetDlgItem(IDC_play)->

EnableWindow(false),当暂停按钮按下时,通过GetDlgItemText(IDC_pause,strtemp)获取按钮状态,此时歌曲处于暂停的进度条上,利用GetDlgItem(IDC_stop)->

EnableWindow(true)函数设置“播放”按钮可用。

2.4处理“停止”按钮

单击“停止”按钮后,首先通过调用CMP3Dlg类的stop()函数暂停正在播放的歌曲,GetDlgItem(IDC_play)->

EnableWindow(false)当stop按钮按下时,播放和暂停应该均不可用,此时的歌曲处于暂停时的进度上,利用GetDlgItem(IDC_stop)->

10将停止正在播放歌曲,利用GetDlgItem()函数设置“暂停”按钮和“停止”按钮不可用。

2.5处理“音量”滑块

拉动“音量”滑块后,在m_slider.SetRange(0,1000)中,设置滑块的移动范围为0~1000。

在启动程序时,通过m_slider.SetPos(500)函数设置滑块指针的初始位置设为500且代表初始音量为50。

2.6处理“退出”按钮单击“退出”按钮后,在Onexitbt()函数中,调用CDialog类的OnCancel()函数将退出对话框,结束程序的运行

3 操作步骤

1)先在VS环境下建立好一个基于对话框的工程。

2)打开资源视图,在对话框内按照布局图布局,步好后根据表-1来设置属性。

添加相应的变量和函数。

3)进行程序初始化。

4)为各个按钮添加消息处理函数,并添加相应的代码。

5)全部完成后进行测试和调试。

④函数代码

/////////////////////////////////////////////////////////////////////////////

// 

CAboutDlg 

dialog 

used 

for 

App 

About

class 

:

public 

CDialog

{

public:

CAboutDlg();

Dialog 

Data

//{{AFX_DATA(CAboutDlg)

enum 

IDD 

IDD_ABOUTBOX 

};

//}}AFX_DATA

ClassWizard 

generated 

virtual 

function 

overrides

//{{AFX_VIRTUAL(CAboutDlg)

protected:

void 

DoDataExchange(CDataExchange* 

pDX);

DDX/DDV 

support

//}}AFX_VIRTUAL

Implementation

//{{AFX_MSG(CAboutDlg)

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

CAboutDlg:

CAboutDlg() 

CDialog(CAboutDlg:

IDD)

//{{AFX_DATA_INIT(CAboutDlg)

//}}AFX_DATA_INIT

}

pDX)

CDialog:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CAboutDlg)

//}}AFX_DATA_MAP

BEGIN_MESSAGE_MAP(CAboutDlg, 

CDialog)

//{{AFX_MSG_MAP(CAboutDlg)

No 

message 

handlers

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

CMP3Dlg 

dialog

CMP3Dlg:

CMP3Dlg(CWnd* 

pParent 

/*=NULL*/)

CDialog(CMP3Dlg:

IDD, 

pParent)

//{{AFX_DATA_INIT(CMP3Dlg)

m_int 

0;

Note 

that 

LoadIcon 

does 

not 

require 

subsequent 

DestroyIcon 

in 

Win32

m_hIcon 

AfxGetApp()->

LoadIcon(IDI_ICON1);

//{{AFX_DATA_MAP(CMP3Dlg)

DDX_Control(pDX, 

IDC_SLIDER, 

m_slider);

DDX_Text(pDX, 

IDC_vol, 

m_int);

BEGIN_MESSAGE_MAP(CMP3Dlg, 

//{{AFX_MSG_MAP(CMP3Dlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_about, 

Onabout)

ON_BN_CLICKED(IDC_exitbt, 

Onexitbt)

ON_NOTIFY(NM_CUSTOMDRAW, 

OnCustomdrawSlider)

ON_BN_CLICKED(IDC_filechoice, 

Onfilechoice)

ON_BN_CLICKED(IDC_play, 

Onplay)

ON_BN_CLICKED(IDC_pause, 

Onpause)

ON_BN_CLICKED(IDC_stop, 

Onstop)

BOOL 

OnInitDialog()

OnInitDialog();

Add 

"

About..."

menu 

item 

to 

system 

menu.

IDM_ABOUTBOX 

must 

be 

the 

command 

range.

ASSERT((IDM_ABOUTBOX 

&

0xFFF0) 

== 

IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX 

<

0xF000);

CMenu* 

pSysMenu 

GetSystemMenu(FALSE);

if 

(pSysMenu 

!

NULL)

CString 

strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

(!

strAboutMenu.IsEmpty())

pSysMenu->

AppendMenu(MF_SEPARATOR);

AppendMenu(MF_STRING, 

IDM_ABOUTBOX, 

strAboutMenu);

Set 

icon 

this 

dialog. 

The 

framework 

automatically

when 

application'

main 

window 

is 

SetIcon(m_hIcon, 

TRUE);

// 

big 

icon

FALSE);

small 

m_slider.SetRange(0,1000);

//滑块的移动范围0~1000

m_slider.SetPos(500);

//滑块指针的初始位置设为500代表初始音量为50

GetDlgItem(IDC_play)->

EnableWindow(false);

//文件没有读取时所有按钮应该是不可选的

GetDlgItem(IDC_pause)->

GetDlgItem(IDC_stop)->

TODO:

extra 

initialization 

here

return 

TRUE;

TRUE 

unless 

you 

set 

focus 

control

OnSysCommand(UINT 

nID, 

LPARAM 

lParam)

((nID 

IDM_ABOUTBOX)

dlgAbout;

dlgAbout.DoModal();

else

OnSysCommand(nID, 

lParam);

If 

add 

minimize 

button 

your 

dialog, 

will 

need 

code 

below

draw 

icon. 

For 

MFC 

applications 

using 

document

iew 

model,

automatically 

done 

by 

framework.

OnPaint() 

(IsIconic())

CPaintDC 

dc(this);

device 

context 

painting

SendMessage(WM_ICONERASEBKGND, 

(WPARAM) 

dc.GetSafeHdc(), 

0);

Center 

client 

rectangle

int 

cxIcon 

GetSystemMetrics(SM_CXICON);

cyIcon 

GetSystemMetrics(SM_CYICON);

CRect 

rect;

GetClientRect(&

rect);

(rect.Width() 

1) 

2;

(rect.Height() 

Draw 

dc.DrawIcon(x, 

y, 

m_hIcon);

OnPaint();

calls 

obtain 

cursor 

display 

while 

user 

drags

minimized 

window.

HCURSOR 

OnQueryDragIcon()

(HCURSOR) 

m_hIcon;

Onabout() 

control 

notification 

handler 

dlg;

dlg.DoModal();

Onexitbt() 

OnCancel();

OnCustomdrawSlider(NMHDR* 

pNMHDR, 

LRESULT* 

pResult) 

UpdateData(true);

m_int=m_slider.GetPos()/10;

setvolume(m_slider.GetPos());

UpdateData(false);

*pResult 

Onfilechoice() 

char 

szFileFilter[]="

mp3文件(*.mp3)|*.mp3|"

wma文件(*.wma)|*.wma|"

wav文件(*.wav)|*.wav|"

所有文件(*.*)|*.*|"

;

CFileDialog 

dlg(true,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);

if(dlg.DoModal()==IDOK)

strFilepath=dlg.GetPathName();

strFilename=dlg.GetFileName();

SetDlgItemText(IDC_filename,strFilename);

Load(this->

m_hWnd,strFilepath);

EnableWindow(true);

//文件读取成功时所有按钮变可选的

Onplay() 

play();

SetDlgItemText(IDC_pause,"

暂停"

);

Onpause() 

strtemp;

GetDlgItemText(IDC_pause,strtemp);

//获取按钮状态

if(strtemp.Compare("

)==0)

pause();

恢复"

resume();

Onstop() 

stop();

SetDlgItemText(IDC_pa

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1