计算机论文小型媒体播放器和运行程序Word格式.docx
- 文档编号:19495134
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:29
- 大小:30.34KB
计算机论文小型媒体播放器和运行程序Word格式.docx
《计算机论文小型媒体播放器和运行程序Word格式.docx》由会员分享,可在线阅读,更多相关《计算机论文小型媒体播放器和运行程序Word格式.docx(29页珍藏版)》请在冰豆网上搜索。
测试计划。
第二阶段:
编码。
第三阶段:
测试。
2、实施计划:
可行性研究、需求分析:
1天
概要设计:
编码:
5天
测试修改:
3天
文档:
2天
四、需求规格说明:
1、对于程序的具体要求:
⑴能够运行在Windows95及以上任何操作系统中。
⑵界面直观,操作简便。
⑶可以播放wav、mid、mp3、avi、flc、dat、mpg等多种常见的媒体文件。
⑷可实现快进、后退等基本功能,可实现全屏播放、循环播放等辅助功能,可调节音量,可更改播放界面等。
⑸新增了系统信息项,可查看计算机系统及资源的简要信息。
⑹
⑺
2、数据描述及数据结构:
⑴注册Windows窗口类结构1,初始化程序主面板
wcl.hInstance=hThisInst;
wcl.lpszClassName=szClassName1;
wcl.lpfnWndProc=WindowFunc;
wcl.style=CS_DBLCLKS;
wcl.cbSize=sizeof(WNDCLASSEX);
wcl.hIconSm=LoadIcon(hThisInst,MAKEINTRESOURCE(PLAY));
wcl.hIcon=LoadIcon(hThisInst,MAKEINTRESOURCE(PLAY));
wcl.hCursor=LoadCursor(hThisInst,MAKEINTRESOURCE(MYTU));
wcl.lpszMenuName=(char*)MYMENU1;
wcl.cbClsExtra=0;
wcl.cbWndExtra=0;
wcl.hbrBackground=(HBRUSH)GetStockObject(LTGRAY_BRUSH);
⑵注册Windows窗口类结构2,初始化播放器窗口
wc2.hInstance=hThisInst;
wc2.lpszClassName=szClassName2;
wc2.lpfnWndProc=WindowFunc2;
wc2.style=CS_DBLCLKS|CS_HREDRAW|CS_VREDRAW;
wc2.cbSize=sizeof(WNDCLASSEX);
wc2.hIcon=LoadIcon(hThisInst,MAKEINTRESOURCE(PLAY));
wc2.hIconSm=NULL;
//LoadIcon(hThisInst,MAKEINTRESOURCE(PLAY));
wc2.hCursor=LoadCursor(hThisInst,MAKEINTRESOURCE(MYTU));
wc2.lpszMenuName=NULL;
wc2.cbClsExtra=0;
wc2.cbWndExtra=0;
wc2.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
3、数据字典:
全局变量:
LONGlength,step=5,style;
BOOLplaying=FALSE,open=FALSE,circulate=FALSE,fullscreen=FALSE;
五、功能及划分:
1、功能划分:
⑴文件管理;
⑵播放控制;
⑶界面设置;
⑷帮助功能。
2、功能描述
⑴文件管理:
此项功能包括文件的打开与关闭、弹出或关闭光盘驱动器及退出系统。
⑵播放控制:
此项功能包括文件的播放和暂停、快进和后退、跳到文件开头和结尾、全屏播放、循环播放和音量控制几项功能。
⑶界面设置:
可将播放界面在有无工具条和有无轨迹条间切换。
⑷帮助功能:
包含了该程序的来源、所能播放的媒体类型、制作时间及制作人的信息,以及计算机系统及资源的简要信息。
六、运行要求:
1、用户界面:
本程序界面直观(见上图),常用功能以工具按钮形式排列在主面板上,其它功能以菜单形式打开;
为方便用户使用,为每项功能设置了快捷键,极大地方便了用户,并且用户可以更改界面设置。
2、运行设计:
程序运行后,用户所有的操作都可以利用鼠标实现。
七、总体设计
系统主要功能模块
文件管理播放控制界面设置帮助功能
打开一个媒体文件暂停隐藏工具条关于
关闭一个媒体文件快进显示工具条信息
弹出所有光驱后退隐藏轨迹条
关上所有光驱跳到文件头显示轨迹条
退出跳到文件尾
全屏/窗口
播放循环播放
音量控制
八、程序测试
测试主要是为了发现系统开发中出现的不完善或是错误之处,并加以改正。
采用自顶向下的方法进行测试。
在系统测试时采用人工测试法。
经测试、修改后的系统可以完成所需的功能,但由于测试数据不够全面,某些媒体有被忽略的可能。
九、使用说明
1、安装:
该程序编译后不依赖其它程序,无需安装,可直接在软盘或光盘中运行,也可以将MiniMediaPlayer.exe文件复制到其它计算机中运行。
2、运行:
启动Windows系统,执行MiniMediaPlayer.exe文件。
十、主要程序代码:
#include<
windows.h>
digitalv.h>
commctrl.h>
#include"
resource.h"
shellapi.h>
stdio.h>
string.h>
#defineUPDATEWM_USER+1
#defineNB11
TBBUTTONtbbutton[NB];
HWNDhwnd,hwndMovie,htrackwnd,htbwnd;
HMENUmainmenu,submenu,submenu2;
HICONhicon[4];
LRESULTCALLBACKWindowFunc(HWND,UINT,WPARAM,LPARAM);
LRESULTCALLBACKWindowFunc2(HWND,UINT,WPARAM,LPARAM);
charszClassName1[]="
classname1"
;
charszClassName2[]="
classname2"
charstr[500]="
"
HINSTANCEhThisInstance;
MCI_DGV_OPEN_PARMSmciOpen;
MCI_DGV_RECT_PARMSmciRect;
MCI_DGV_WINDOW_PARMSmciWindow;
MCI_DGV_PUT_PARMSmci_Put;
MCI_STATUS_PARMSmciStatus;
MCI_SEEK_PARMSmciSeek;
MCI_DGV_UPDATE_PARMSmciUpdate;
intWindowWidth,WindowHeight,WindowTopX,WindowTopY;
charfn[256];
charfilename[256];
MEMORYSTATUSfreemem;
DWORDvolume=1000;
WORDwDeviceID;
voidGetAudioCDDevID();
voidCDEject();
BOOLCloseCDDevice();
voidCDBack();
voidInitToolBar(void);
DWORDPlayMovie(WORDwDevID,DWORDdwFrom,DWORDdwTo);
BOOLinitavi(DWORD);
voidSetFilename(char*);
BOOLSetStep(DWORD);
intWINAPIWinMain(HINSTANCEhThisInst,HINSTANCEhPrevInst,
LPSTRlpszArgs,intnWinMode)
{
MSGmsg;
WNDCLASSEXwcl,wc2;
HACCELhAccel;
hThisInstance=hThisInst;
//Defineawindowclass
wcl.hInstance=hThisInst;
if(!
RegisterClassEx(&
wcl))
{
MessageBox(NULL,"
NOREGISTERWC1!
"
警告"
MB_OK);
return0;
}
wc2.hInstance=hThisInst;
wc2))
NOREGISTERWC2!
hwnd=CreateWindow(
szClassName1,
"
MiniMediaPlayer"
WS_CAPTION|WS_MINIMIZEBOX|WS_SYSMENU,//WS_OVERLAPPEDWINDOW,
150,300,373,124,
NULL,
hThisInst,
NULL
);
if(hwnd==NULL)
窗口句柄为空!
(hwndisNull!
)"
DragAcceptFiles(hwnd,1);
//MessageBox(NULL,"
此程序仅用C语言和WindowsAPI编制而成。
关于:
MB_OK|MB_ICONINFORMATION);
hAccel=LoadAccelerators(hThisInst,(char*)ACCELERATOR1);
ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);
mainmenu=GetMenu(hwnd);
submenu=GetSubMenu(mainmenu,0);
submenu2=GetSubMenu(mainmenu,1);
InitToolBar();
InitCommonControls();
htbwnd=CreateToolbarEx(
hwnd,
WS_VISIBLE|WS_CHILD|
TBSTYLE_TOOLTIPS|TBSTYLE_WRAPABLE,
MYTOOLBAR,
NB,
hThisInstance,
tbbutton,
0,0,
32,32,
sizeof(TBBUTTON));
SendMessage(htbwnd,TB_ENABLEBUTTON,FILE_CLOSE,0);
SendMessage(htbwnd,TB_ENABLEBUTTON,CTRL_PLAY,0);
hicon[0]=LoadIcon(hThisInst,MAKEINTRESOURCE(IDI_ICON0));
hicon[1]=LoadIcon(hThisInst,MAKEINTRESOURCE(IDI_ICON1));
hicon[2]=LoadIcon(hThisInst,MAKEINTRESOURCE(IDI_ICON2));
hicon[3]=LoadIcon(hThisInst,MAKEINTRESOURCE(IDI_ICON3));
if(strlen(lpszArgs))
{
strcpy(filename,lpszArgs);
SetFilename(lpszArgs);
if(!
initavi(WS_OVERLAPPEDWINDOW))
{
SendMessage(hwnd,WM_COMMAND,FILE_CLOSE,0);
}
else
SendMessage(hwnd,WM_COMMAND,CTRL_PLAY,0);
EnableMenuItem(submenu,FILE_OPEN,MF_BYCOMMAND|MF_GRAYED);
EnableMenuItem(submenu,FILE_CLOSE,MF_BYCOMMAND|MF_ENABLED);
//EnableMenuItem(submenu2,CTRL_PLAY,MF_BYCOMMAND|MF_ENABLED);
SendMessage(htbwnd,TB_CHECKBUTTON,FILE_OPEN,1);
SendMessage(htbwnd,TB_ENABLEBUTTON,FILE_CLOSE,1);
SendMessage(htbwnd,TB_ENABLEBUTTON,CTRL_PLAY,1);
}
while(GetMessage(&
msg,NULL,0,0))
if(!
TranslateAccelerator(hwnd,hAccel,&
msg))
TranslateMessage(&
msg);
DispatchMessage(&
returnmsg.wParam;
}
LRESULTCALLBACKWindowFunc(HWNDhwndfunc,UINTmessage,
WPARAMwParam,LPARAMlParam)
HDChdc;
HANDLEhDrop;
PAINTSTRUCTpaintstruct;
OPENFILENAMEopenfile;
staticBOOLplaying=0;
charfilefiler[]={'
*'
'
.'
w'
a'
v'
\0'
W'
A'
V'
'
m'
i'
d'
M'
I'
D'
r'
R'
t'
T'
};
floathdj,vdj;
LONGposition;
LPTOOLTIPTEXTttext;
staticinti=0;
STARTUPINFOstartupinfo;
PROCESS_INFORMATIONprocessinfo;
charcomline[]="
sndvol32.exe"
dir[50];
switch(message)
caseWM_KEYDOWN:
SendMessage(hwndMovie,WM_KEYDOWN,wParam,lParam);
break;
caseWM_NOTIFY:
ttext=(LPTOOLTIPTEXT)lParam;
if(ttext->
hdr.code==TTN_NEEDTEXT)
switch(ttext->
hdr.idFrom)
caseFILE_OPEN:
ttext->
lpszText="
打开一个媒体文件"
break;
caseFILE_CLOSE:
关闭一个媒体文件"
caseCTRL_PLAY:
播放"
caseCTRL_PAUSE:
暂停"
caseCTRL_FORWARD:
快进"
caseCTRL_BACK:
后退"
caseCTRL_START:
跳到文件开始"
caseCTRL_END:
跳到文件结尾"
caseCTRL_VOLUME:
音量控制"
caseWM_COMMAND:
switch(LOWORD(wParam))
caseSET_HIDE:
ShowWindow(htbwnd,SW_HIDE);
break;
caseSET_SHOW:
ShowWindow(htbwnd,SW_SHOW);
caseSET_HIDETRACK:
ShowWindow(htrackwnd,SW_HIDE);
caseSET_SHOWTRACK:
ShowWindow(htrackwnd,SW_SHOW);
caseCTRL_FULLSCREEN:
SendMessage(hwndMovie,WM_KEYDOWN,13,0);
caseCTRL_VOLUME:
memset(&
startupinfo,0,sizeof(STARTUPINFO));
startupinfo.cb=sizeof(STARTUPINFO);
GetWindowsDirectory(dir,50);
if(CreateProcess(NULL,
comline,
NULL,
0,
dir,
&
startupinfo,
processinfo
)==0)
MessageBox(N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机论文 小型 媒体播放器 运行 程序