附录二VisualC++下的多媒体开发

上传人:ldj****22 文档编号:45621965 上传时间:2018-06-18 格式:PDF 页数:7 大小:318.42KB
返回 下载 相关 举报
附录二VisualC++下的多媒体开发_第1页
第1页 / 共7页
附录二VisualC++下的多媒体开发_第2页
第2页 / 共7页
附录二VisualC++下的多媒体开发_第3页
第3页 / 共7页
附录二VisualC++下的多媒体开发_第4页
第4页 / 共7页
附录二VisualC++下的多媒体开发_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《附录二VisualC++下的多媒体开发》由会员分享,可在线阅读,更多相关《附录二VisualC++下的多媒体开发(7页珍藏版)》请在金锄头文库上搜索。

1、中国科学技术大学 多媒体技术与网络通信实验室(copyright 1999) 附录二附录二 Visual C+下的多媒体开发下的多媒体开发 一、一、Visual C+多媒体开发方法多媒体开发方法 1、使用、使用 OLE 技术技术 OLE 是一种动态信息交换协议,它通过一个由 OLE 包容器(Container)和 OLE 服务器 (Server) 组成的系统来运作。 OLE 技术允许一个应用程序调用另一个应用程序来提供服务。 在多媒体开发中, 一个多媒体应用程序要求的服务可能是播放音频, 也可能是更复杂的音频 和视频同时播放。实现 OLE 的方法,一种是直接连接或嵌入;另一种使用包。如下是几个

2、 调用系统缺省应用程序的示例: ShellExecute(NULL,“open“,“c:windowsgenneral.txt“, NULL,NULL,SW_SHOWNORMAL); /用Notepad.exe打开一个文本文件 ShellExecute(NULL,“open“,“c: windows mediading.wav“, NULL,NULL,SW_SHOWNORMAL); /用媒体播放器播放一个WAVE文件 ShellExecute(NULL,“open“,“http:/202.38.75.33“, NULL,NULL,SW_SHOWNORMAL); /用缺省的浏览器打开网页 2、运

3、用、运用 OCX OCX(OLE Control eXtensions)可以分为两类,一类是 OLE 公用控件;另一类是 OLE 自定义控件。在 VC 中,提供了用于提高代码重用的重要工具组件平台(Compenent Gallery) ,提供了大量的公用 OCX,其中 MCI32.ocx 就是用于管理 Media Control Interface(MCI,媒体控制接口)设备的多媒体文件的录音和播放。该控件可以显示一套用于 将 MCI 命令传向设备的推压式按钮,这些设备包括音频板、MIDI 序列发生器、CD-ROM 驱动器、音频 CD 播放器、视频光盘播放器以及视频磁带录音机和播放器。该控件还

4、支持 Video for Windows AVI 文件的播放。 3、创建和使用、创建和使用 DLL DLL 是一个包含了若干函数的可执行模块,可以实现应用程序的共享代码和资源。在 VC 下可以考虑利用 DLL 来扩充多媒体系统的功能。例如在 DLL 中定义诸如播放动画、声 音等的函数,然后在主程序中通过 LoadLibrary 函数装载 DLL,即可以调用 DLL 中的函数 来实现所需要的功能。可以在有关的站点找到一些第三方厂家的具有多媒体特性的 DLL, 如 AAPLAY.DLL 可将 3DS 的动画文件进行播放。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 中国科学技术大

5、学 多媒体技术与网络通信实验室(copyright 1999) 4、编制、编制 MFC 类类 VC 下,可以使用其他公司开发的多媒体类,从而可以利用现有类的功能实现多媒体应 用程序。例如,CtegMM 类提供对多媒体设备的控制,可以播放 CD 音频、WAVE 文件、 MIDI 文件等。也可以定义自己的类,更自由的实现有关多媒体功能。 5、Windows 类类 MCIWnd 的应用的应用 MCIWnd(Meida Control Interface Windows)是一个预包装的 MCI 播放器的 Windows 类(不是一个 CV 类) ,在 Video for Windows(VFW)中实现

6、,开发者几乎不用编程就可以 使用它提供的各种媒体控制如暂停、速度、大小和音量等。VC 下使用 MCIWnd 类,必须包 括头文件VFW.H, 连接设置中指出VFW32.LIB, 然后用 MCIWndCreat函数来创建 MCIWnd。 6、使用、使用 Windows 多媒体多媒体 API 函数函数 Windows 多媒体系统函数在 DLL 中,在开发 Windows 多媒体应用程序时,最简单的方 法是利用 Windows 的媒体控制接口(MCI)来实现。 媒体控制接口属高层音频服务, 其 MCI 设备驱动程序封装了操作波形设备的许多细节,因而编程量小,简单易用。 (在 VC5 中,编 制自己的

7、多媒体程序时需要将 winmm.lib 库连接。有时还需要包括头文件 mmsystem.h) 。 利用 MCI 高级函数编制的应用程序不能进行录入和播出数据的实时处理。 如果需要做较 高要求的数据实时处理,则需要利用 Windows 的多媒体开发工具(MDK)所提供的与设备无 关低层音频服务接口函数。 二、二、Windows 多媒体多媒体 API 函数函数 1、Windows 多媒体多媒体 API 函数函数 Windows 提供低级和高级两组多媒体系统函数, 常用函数接口如下表所示。 有关函数的 接口请参阅 VC 的联机帮助。 MCI 接口 解释 级别 PlaySound SndPlaySou

8、nd 是两个发声函数,只执行单 一的播放 WAVE 文件功能的 高级函数 处于多媒体接口的顶点(命令-消息接口) mciSendCommand mciGetDeviceID (命令-字符串接口) mciSendString 两个高级命令接口命令- 消息和命令-字符串执行相 同的功能,区别是单词和数 字的区别最后的执行结 果是一样的 高级 MCI 接口 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 中国科学技术大学 多媒体技术与网络通信实验室(copyright 1999) (命令-字符串和命令-消息接口) mciGetErrorString mciSetYieldProc (常

9、用的多媒体文件 I/O 函数) mmioOpen mmioClose mmioRead mmioWrite mmioSendMessage mmioDescend mmioAscend 高级MCI函数即封装调用了 这些 I/O 函数,用于处理 RIFF 文件, 可执行各种复杂 的操作 低级多媒体函数 TimeGetDevCaps timeBeginPeriod TimeSetEvent timeKillEvent timeEndPeriod 实现媒体播放等功能的高 精度计时 更低层的计时器函数 2、WAVE 格式音频的相关函数格式音频的相关函数 在 Windows 多媒体 API 函数中,由一

10、部分专门用于控制 WAVE 格式的音频数据,下表 将列出在实验样本程序中使用到的 API 函数,其他相关的函数请参阅 VC 的联机帮助。 函数名称 函数功能 PlaySound 播放 WAVE 文件 SndPlaySound 播放 WAVE 文件 WaveInOpen 打开 WAVE 格式录音设备 WaveInClose 关闭 WAVE 格式录音设备 WaveInGetNumDevs 检查系统中录音设备的数目 WaveInAddBuffer 将一个录音缓冲区送给录音设备 WaveInPrepareHeader 准备一个缓冲区用于录音 WaveInStart 开始录音 WaveInStop 停止

11、录音 WaveOutOpen 打开 WAVE 格式放音设备 WaveOutClose 关闭 WAVE 格式放音设备 WaveOutGetNumDevs 检查系统中放音设备的数目 WaveOutPause 暂停放音 WaveOutPrepareHeader 准备一个缓冲区用于播放 WaveOutSetVolume 设置放音的音量 3、API 使用示例使用示例 (1)sndPlaySound 调用格式: BOOL sndPlaySound( LPCSTR lpszSound, UINT fuSound); 入口参数: lpszSound 要播放的 WAVE 文件的名称 如果您在阅读过程中发现疏漏和

12、错误,请您尽快和编者取得联系 中国科学技术大学 多媒体技术与网络通信实验室(copyright 1999) fuSound 播放参数,函数的返回值和该参数有关。 以下为使用示例: /播放系统声音“ding.wav” sndPlaySound(“ding.wav“,SND_ASYNC); /停止声音的播放 sndPlaySound(“ding.wav“,NULL); (2)PlaySound 调用格式: BOOL PlaySound( LPCSTR pszSound, HMODULE hmod, DWORD fdwSound); 入口参数: pzSound 要播放的 WAVE 文件的名称 h

13、mod 指定播放器句柄,fdwSound =SND_RESOURCE 时有效 fdwSound 播放参数,函数的返回值和该参数有关。 以下为使用示例: /使用系统缺省的播放器播放 PlaySound(“chord.wav“,NULL,SND_SYNC ); /使用播放器“MyPlaer.exe”播放 PlaySound(“MyPlaer.exe“,hmod , SND_RESOURCE ); PlaySound(“chord.wav“,hmod,SND_SYNC ); /停止声音的播放 PlaySound(NULL,hmod,SND_SYNC ); (3)mciSendCommand 调用格式

14、: MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg, DWORD fdwCommand, DWORD dwParam ); 入口参数: IDDevice 设备的 ID Umsg 用户发出的 MCI 命令 FdwCommand 有关 Umsg 的参数 DwParam 包含命令 Umsg 信息的结构指针 以下为使用示例: /声明有关的变量 HWND hwnd; MCIDEVICEID wDeviceID; MCI_OPEN_PARMS mciopen, mciplay; hwnd=GetActiveWindow()-m_hWnd; m

15、ciopen.lpstrElementName = “e:ding.wav“; mciopen.lpstrDeviceType = “waveaudio“; 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 中国科学技术大学 多媒体技术与网络通信实验室(copyright 1999) /打开对应“waveaudio”的放音设备 mciSendCommand(0,MCI_OPEN, MCI_OPEN_TYPE|MCI_OPEN_ELEMENT, (DWORD)(LPVOID) /播放打开的文件 wDeviceID = mciopen.wDeviceID; mciplay.dwCallback = (DWORD)hwnd; mciSendCommand(wDeviceID,MCI_PLAY,MCI_NOTIFY, (DWORD)(LPVOID) (4)WaveOutOpen 和 WaveInOpen 调用格式 MMRESULT waveOutOpen( LPHWAVEOUT phwo, UINT uDeviceID, LPWAVEFORMATEX pwfx, DWORD dwCallback, DWORD dwCallba

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号