资源描述:
《MCI接口编程实验.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MCI接口编程实验一.实验目的熟悉Windows下声卡编程的基本过程及原理,掌握Windows下MCI编程的基本知识。二.实验原理设计多媒体程序,关键是对多种媒体设备的控制和使用,在Windows3.1和Windows95系统中,对多媒体设备进行控制主要有三种方法:第一种方法是使用微软公司窗口系统中对多媒体支持的MCI,即媒体控制接口,MCI是多媒体设备和多媒体应用软件之间进行设备无关的沟通的桥梁。在VB和VC中,MCI都得到了很好的支持。第二种方法,通过调用Windows的API(应用程序接口)多媒体相关函数实现媒体控制。第三种方法是使
2、用OLE(ObjectLinking&Embedding),即对象链接与嵌入技术,它为不同软件之间共享数据和资源提供了有力的手段。Windows多媒体系统函数在DLL中,在开发Windows多媒体应用程序时,最简单的方法是利用Windows的媒体控制接口(MCI)来实现。媒体控制接口属高层音频服务,其MCI设备驱动程序封装了操作波形设备的许多细节,因而编程量小,简单易用。(在VC5中,编制自己的多媒体程序时需要将winmm.lib库连接。有时还需要包括头文件mmsystem.h)。利用MCI高级函数编制的应用程序不能进行录入和播出数据的实
3、时处理。如果需要做较高要求的数据实时处理,则需要利用Windows的多媒体开发工具(MDK)所提供的与设备无关低层音频服务接口函数。我们在本实验中用最简单的方法来实现声音的播放和录制—媒体控制接口编程。使用的windows多媒体API函数如下:三.实验内容与代码1、使用PlaySound函数播放声音文件:PlaySound(filename,NULL,SND_SYNC);2、使用sndPlaySound函数播放声音文件:sndPlaySound(filename,SND_SYNC);3、使用高级MCI函数播放声音文件:MCI_OPEN_P
4、ARMSmciopen;MCI_PLAY_PARMSmciplay;//filename_play存放了声音文件的路径mciopen.lpstrElementName=filename_play;mciopen.lpstrDeviceType=(LPCSTR)MCI_DEVTYPE_SEQUENCER;//打开对应的播放设备rtrn=mciSendCommand(0,MCI_OPEN,MCI_WAIT
5、MCI_OPEN_TYPE_ID
6、MCI_OPEN_TYPE
7、MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&mciop
8、en);//播放打开的声音文件wDeviceID=mciopen.wDeviceID;mciplay.dwCallback=(DWORD)hwnd;rtrn=mciSendCommand(wDeviceID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&mciplay);//停止播放mciSendCommand(wDeviceID,MCI_STOP,0,NULL);mciSendCommand(wDeviceID,MCI_CLOSE,0,NULL);4、录音:MCI_OPEN_PARMSmciopen;MCI_R
9、ECORD_PARMSmci1;mciopen.lpstrElementName=(LPCSTR)"";mciopen.lpstrDeviceType="waveaudio";//打开播放设备rtrn=mciSendCommand(0,MCI_OPEN,MCI_WAIT
10、MCI_OPEN_TYPE
11、MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&mciopen);//录制声音wDeviceID=mciopen.wDeviceID;mci1.dwCallback=(DWORD)hwnd;rtrn=mciSendComman
12、d(wDeviceID,MCI_RECORD,MCI_NOTIFY,(DWORD)(LPVOID)&mci1);//停止录音mciSendCommand(wDeviceID,MCI_STOP,0,NULL);//保存录制的声音,filename_save是保存的文件名MCI_SAVE_PARMSmcisave;mcisave.lpfilename=filename_save;mcisave.dwCallback=(DWORD)hwnd;rtrn=mciSendCommand(wDeviceID,MCI_SAVE,MCI_SAVE_FILE
13、
14、MCI_WAIT,(DWORD)(LPVOID)&mcisave);四.运行结果开始界面:思考题:1、什么是MCI接口?简述MCI所囊括的内容MCI(MediaControlInterfac