媒体程序设计——媒体控制接口MCI编程ppt课件
MCI详解

(1)首先,要在USES里加上Mmsystem函数声明如下:functionmciSendStringA(lpstrCommand,lpstrReturnString:PAnsiChar;uReturnLength:UINT;hWndCallback;HWND);MCIERROR;stdcall; functionmciSendStringW(lpstrCommand,lpstrReturnString:PWideChar;uReturnLength:UINT;hWndCallback:HWND);MCIERROR;stdcall;functionmciSendString(lpstrCommand,lpstrReturnString:Pchar;uReturnLength:UINT;hWndCallback:HWND);MCIERROR;stdcall;具体请参考帮助MCI命令消息接口函数:mciSendCommand发送命令消息函数mciGetDeviceID返回打开设备的IDmciGetErrorString返回mciSendCommand错误代码对应的字符串向MCI设备发送命令消息时使用mciSendCommand(mciID:MCIDEVICEID;uMessage:UINT;dwParam1,dwParam2:DWORD);MCIERR OR;stdcall;mciID:接受命令消息的MCI设备的IDuMessage:命令消息dwParam1:命令消息标志dwParam2:指向接收命令消息参数块地址MCIERROR:返回值,如果为0,表示调用成功,否则失败.获得错误代码后通过function mciGetErrorString(mcierr:MCIERROR;pszT ext;Pchar;uLength:UINT):BOOL;stdcall;来获得相应的错误字符串.该函数参数说明如下:mcierr:由mciSendCommand返回的错误代码pszText:存放与mcierr相对应的字符串的地址uLength:指定pszText指向的缓冲区大小,MCI返回的字符串长度最大为128个字符BOOL:返回值,为true则成功,否则,就没有此错误代码下面这个函数,是获取MCI设备ID的functionmciGetDeviceID(pszDevice:Pchar):MCIDEVICEID;stdcall;pszDevice:指定已经打开的MCI设备名称MCIDEVICEID:返回值,为返回的ID.关于设备名称,请打开system.ini文件在[mci]段例如:cdaudio=mcicda.drvsequencer=mciseq.drvwaveaudio=mciwave.drvavivideo=mciavi.drvvideodisc=mcipionr.drvvcr=mcivisca.drvMPEGVideo=mciqtz.drvcdaudio和sequencer等就是设备名MCI详解[连载二]什么是MCI,MCI是多媒体控制接口(Media Control Interface)的缩写.它包括基于命令字符串,消息方式与设备驱动程序进行通讯的可扩充接口和MCI设备驱动程序.支持MCI指令的设备有ANIMATION(动画播放设备)CDAUDIO(CD音频设备)WAVEAUDIO(波形音频设备)OVERPLAY(视频叠加设备,如Video Blaster)DIGITALVIDEO(窗体数字视频,如回放*.avi文件)VIDEODISC(激光视频设备)VCR(可程控录像机)SEQUENCER(MIDI序列发生器)打开WINDOWS子目录下的SYSTEM.INI文件,在[MCI]段就能看到以上设备的安装信息,格式为:DeviceType = Driver设备名= 驱动程序名打开WIN.INI文件,打开[mci extensions],找到如下段[mci extensions]mid=Sequencerrmi=Sequencerwav=waveaudioavi=AVIVideocda=CDAudioaif=MPEGVideoaiff=MPEGVideoaifc=MPEGVideoau=MPEGVideom1v=MPEGVideomov=MPEGVideomp2=MPEGVideompa=MPEGVideompe=MPEGVideompeg=MPEGVideompg=MPEGVideoqt=MPEGVideosnd=MPEGVideodat=MPEGVideo其格式为: 文件扩展名= 设备名在程序设计中,指定一个mci设备,就是指定设备名,当然,还可以指定相对应的设备类型常数:MCI设备与设备类型常数设备类型设备类型常数cdaudio MCI_DEVTYPE_ANIMATIONanimation MCI_DEVTYPE_CD_AUDIOdat MCI_DEVTYPE_DATdigitalvideo MCI_DEVTYPE_DIGITAL_VIDEOother MCI_DEVTYPE_OTHERoverlay MCI_DEVTYPE_OVERLAYscanner MCI_DEVTYPE_SCANNERsequencer MCI_DEVTYPE_SEQUENCERvcr MCI_DEVTYPE_VCRvideodisc MCI_DEVTYPE_VIDEODISCwaveaudio MCI_DEVTYPE_WAVEFORM_AUDIOMCI设备还有简单型(Simple)和复合型(Compound)之分,MCI将不需要文件的设备称作简单型设备(Simple Device),如CDAudio等,将需要文件的设备称作复合型设备(Compound Device),如Sequencer,Waveaudio等.MCI详解[连载三]在连载一里,我解释了几个MCI的函数(请参考连载一)WINDOWS中的多媒体扩展部分的消息由两类:一是发送到窗体,有窗体函数处理的消息均以MM开头.二是用于回调函数和基于消息的API消息,由应用程序发送,实现与MCI设备的通讯.DELPHI中有32种命令消息,按用途分为:1,系统命令消息:由MCI直接解释,不依耐设备性能.2,必须命令消息:所有MCI设备都支持,用于打开,关闭设备并获得有关信息.3,基本命令消息:所有的MCI设备都支持,但并非完全支持,遇到不支持的某一个消息时,返回MCIERR_UNSUPPORTED_FUNCTION.4,扩展命令消息,用于特定设备.扩展命令消息分三种:(1)使用MCI元素文件扩展命令消息(FAQ A:何谓元素?Q:复合型设备在打开时既要指定设备名,又要指定文件名,而文件名就被称为元素.A:何谓复合型设备?Q:参考连载二)(2)设备操作与定位扩展命令消息(3)窗口式视频设备扩展命令消息此外,MCI还使用MCI_MCINOTIFY告诉应用程序一条MCI消息已经发送,它是窗口通知消息,要得到此消息,应用程序要指定一个窗体处理该消息.消息分类:系统命令消息MCI_BREAK 设置指定设备的中止键MCI_SOUND 播放WINDOWS声音MCI_SYSINFO 获取信息必须命令消息MCI_CLOSE 关闭设备MCI_GETDEVCAPS 获取设备性能信息MCI_INFO 获得设备信息MCI_OPEN 打开设备并获得IDMCI_STATUS 获得状态信息基本命令消息MCI_LOAD 载入文件MCI_PAUSE 暂停设备MCI_PLAY 播放MCI_RECORD 录制MCI_RESUME 恢复暂停MCI_SAVE 保存文件MCI_SEEK 在元素内定位MCI_SET 设置设备参数MCI_STOP 停止扩展命令消息[使用元素文件扩展命令消息]MCI_COPY 拷贝数据MCI_CUT 剪切MCI_DELETE 删除MCI_PASTE 粘贴[设备操作与定位扩展命令消息]MCI_CUE 为播放或录制操作插入一个设备MCI_ESCAPE 把一串命令发送到命令处理器MCI_SPIN 开始或中止旋转可转动设备MCI_STEP 步进帧[窗口式视频设备扩展命令消息]MCI_FREEZE 冻结画面MCI_PUT 定义源或目的裁剪矩形区MCI_REALIZE 实现图形设备的调色板MCI_UNFREEZE 与FREEZE相反MCI_UPDATE 刷新MCI_WHERE 确定剪裁区域MCI_WINDOW 为一个图形设备及它的显示方式指定一个窗口和窗口风格MCI连载四发送MCI命令消息有的需要花很长时间才能完成,如播放AVI文件,是否在播放完成前就将控制权返回到APPLICATION,是由命令消息标志确定的.命令消息标志分专用标志和通用标志,专用消息与命令消息配套使用,通用消息适用于所有命令消息:MCI_NOTIFY和MCI_WAITMCI_NOTIFY:通知标志,表示规定动作完成后,给随同发送命令消息的数据结构dwCallBack字段指定的窗口发送MM_MCINOTIFY消息,这个消息由dwCallBack字段指定的回调函数处理]MCI_WAIT:等待标志,表示在规定操作完成后,再将控制权转交APPLICATION,比如播放AVI文件完成后,APPLICATION才能获得控制权,但可以用MCI_BREAK来中断.再说一遍mciSendCommand函数结构:mciSendCommand(mciID:MCIDEVICEID;uMessage:UINT;dwParam1,dwParam2:DWORD);MCIERR OR;stdcall;mciID:接受命令消息的MCI设备的IDuMessage:命令消息dwParam1:命令消息标志dwParam2:指向接收命令消息参数块地址MCIERROR:返回值,如果为0,表示调用成功,否则失败.获得错误代码后通过function mciGetErrorString(mcierr:MCIERROR;pszT ext;Pchar;uLength:UINT):BOOL;stdcall;其中dwParam1是消息指定标志,dwParam2是消息数据结构以MCI_OPEN为例,打开Mmsystem.pas文件,找到如下:typePMCI_Open_ParmsA = ^TMCI_Open_ParmsA;PMCI_Open_ParmsW = ^TMCI_Open_ParmsW;PMCI_Open_Parms = PMCI_Open_ParmsA;{$EXTERNALSYM tagMCI_OPEN_PARMSA}tagMCI_OPEN_PARMSA = record*********dwCallback: DWORD;wDeviceID: MCIDEVICEID;lpstrDeviceType: PAnsiChar;lpstrElementName: PAnsiChar;lpstrAlias: PAnsiChar;end;{$EXTERNALSYM tagMCI_OPEN_PARMSW}tagMCI_OPEN_PARMSW = record*********dwCallback: DWORD;wDeviceID: MCIDEVICEID;lpstrDeviceType: PWideChar;lpstrElementName: PWideChar;lpstrAlias: PWideChar;end;其中可以看出(注意有*的语句),参数是一个记录类型,也就是说dwParam1和dwParam2是两个记录类型的数据,在使用时赋值要注意类型.再以MCI_OPEN命令为例,其语法为:dwReturn:=mciSendCommand(wDeviceID,MCI_OPEN,dwFlags,DWORD(mciOpenParam));-----------------------------------------------------------在var段申明:varwDeviceID:MCIDEVICEID; //存放设备IDdwReturn:MCIERROR; //存放返回值mciOpenParam:PMCI_OPEN_PARMS; //MCI_OPEN命令消息的数据结构-----------------------------------------------------------在适当位置为mciOpenParam申请空间new(mciOpenParam);最后还要释放空间dispose(mciOpenParam);-----------------------------------------------------------为需要在命令消息数据结构中需要的字段赋值,mciOpenParam^.lpstrDeviceType:='cdaudio';-----------------------------------------------------------最后,调用发送函数dwReturn:=mciSendCommand(0,//打开设备前ID为0MCI_OPEN, //命令消息MCI_OPEN_TYPE, //消息标志,表示字段lpstrDeviceType有值DWORD(mciOpenParam)); //数据结构dwReturn若为0,表示调用成功.MCI详解[连载五]MCI命令字符串接口函数与命令消息方式相似,MCI为发送命令字符串提供了两个函数:](1) mciSendString(2) mciExecute函数(2)是(1)的简化形式,函数(1)返回的错误代码和相应的错误信息与命令消息函数相同.函数(2)如果出现错误,则以消息框形式提示.functionmciSendString(lpstrCommand,lpstrReturnString:Pchar;uReturnLength:UINT;hWndCallback:HWND):MCIERROR;stdcall;lpstrCommand:指向以nil结尾的mci命令字符串lpstrReturnString:返回信息的缓冲区,可以设置成nil,则不返回信息hWndCallback:接收MM_MCINOTIFY消息的窗口句柄,如果命令包含Notify标志,则此参数必须要MCIERROR:返回值,为0表示调用成功.错误代码要用函数mciGetErrorString获得错误信息functionmciExecute(pszCommand:LPCSTR):BOOL;stdcall;这是函数(1)的简化形式pszCommand:MCI命令字符串返回值:返回true,表示调用成功;返回false,则用messagebox显示错误信息命令字符串语法格式:commanddevice_name argumentcommand:MCI命令字符串device_name:设备名或设备元素argument:命令的标志和参数标志:由MCI命令支持的关键字组成参数:标志所带参数注:argument可以是字符串,带符号的长整数和矩形等数据类型,参数之间用空格隔开.例1:播放cd,从当前位置播放到10 000ms处停止playcdaudio to 10000例2:以别名形式对cdaudio操作opencdaudio alias cdplay cdstop cdclose cd使用别名的好处:当设备名或元素名较长时,操作起来不方便,就为它指定一个别名, 例如本例就是将设备cdaudio指定一个别名cd,后面就对cd进行操作.MCI详解[连载六]命令字符串分类:用mciSendString和mciExecute函数发送的字符串命令分为四大类:系统命令:由MCI直接解释,不发送给设备.必需命令:所有设备都支持.基本命令:设备对这些命令可选.扩充命令:仅适用于某些设备.字符串命令表类别命令名功能系统命令break 中止,放弃waitsound 播放windows声音(win.ini文件中[Sound]段) sysinfo获取MCI系统信息必需命令capability 获取设备性能信息close 关闭设备info 获取设备型号,厂家等信息open 初始化status 状态信息基本命令load 载入设备元素pause 暂停play 播放record 录制resume 恢复暂停save 存盘seek 在媒体内定位set 设置status 获取设备状态信息stop 停止播放或录制命令字符串举例:(用于mciSendString发送)capabilitymysound device type//返回"mysound"的设备类型closemysound//关闭"mysound"设备configureavi//打开AVI播放设备对话框cuemysound input//为录制准备设备"mysound"deletemysound from 1 to 900//删除波形音频1到900ms之间的数据infomysound product//取回与"mysound"相关的硬件描述open new type waveaudio alias mysound buffer 6//打开"mysound"设备,mysound是别名,缓冲区为6秒pausemysound//暂停"mysound"设备playmysound from 1 to 500 notify(wait)//播放"mysound"从位置1到500,播放后发送通知消息(notify)或播放时等待(wait) realizemyvideo normal//告诉"myvideo"设备实现它的调色板recordmysound//从当前位置开始录制resumemysound//恢复暂停savevboard c:\v1.tga//将视频缓冲区的内容存入v1.tga中seekmysound to start//定位到"mysound"相关文件的开始statusmysound mode//返回"mysound"当前模式step movie by 5//从当前帧开始播放5帧stopmysound//停止播放或录制。
VisualBasic6.0的多媒体设计(PPT 19页)

14.1 什么是MCI
媒体控制接口MCI(Media Control Interface),是一 种为了让人容易使用而设计的高级多媒体接口。低级接口由 API函数直接控制WAVE、MIDI、计时器、游戏控制器、动 画等,但是高级接口则使用另一种方式来控制多媒体设备。 在一般情况下,利用MCI来控制各种多媒体设备的基本指令 是相同的。
指定Open命令将要打开的或者Save命令将要保存的文件。如果在运行时要改变FileName属性,就必须先 关闭然后再重新打开Multimedia MCI控件 规定Step命令能够前向单步或Back命令能够后向单步的帧数。在设计时,该属性不可用 为Play或Record命令规定起始点。在设计时,该属性不可用 规定打开的MCI设备上的媒体长度。在设计时,该属性不可用,在运行时为只读 返回当前打开的MCI设备的当前模式。在设计时,该属性不可用,在运行时为只读 指定当前媒体的起始位置。在设计时,该属性不可用,在运行时为只读 指定打开的MCI设备的当前位置。在设计时,该属性不可用,在运行时为只读
14.2.4 对Multimedia MCI控件进行编程
通过设置Enabled和Visbile属性,可使Multimedia MCI 控件在运行时可见或不可见。按照默认规定,Enabled和 Visible属性被设置为True,这样该控件在运行时就是可见的 。
14.3 MediaPlayer控件
MediaPlayer控件在ActiveMedia的基本功能的基础上扩 充了媒体的播放功能,可以播放多种格式的声音文件和视频 文件。
14.3.1 关于MediaPlayer控件
要使用MediaPlayer控件,首先得在工程中引用 Windows Media Player部件。MediaPlayer控件本身集成了 许多具有播放多媒体文件控制功能的按钮,还提供了显示播 放进程的进度条和声音音量控制等功能。
第7章 多媒体技术

7.2.1 多媒体程序的开发方法
简单的调用媒体文件(本章内容)
– – – – 使用MCIWND窗口类控制音频和视频 使用MCI 使用API函数(代码量大) 其他:PlaySound()、SndPlaySound()、 MessageBeep()等控制播放音频文件。
编辑处理文件 控制多媒体硬件设备
INFO
OPEN STATUS
从一个MCI设备得到 有关的信息
初始化一个MCI设备 从MCI设备返回有关 的状态信息
命令消息 MCI_LOAD
命令字符串 命令说明 命令类型 LOAD 从一个磁盘文件 可 中加载数据 选 MCI_PAUSE PAUSE 暂停播放 命 MCI_PLAY PLAY 开始播放 令 MCI_RECO RECORD 开始记录数据 RD MCI_RESU RESUME 重新开始播放或 ME 录音 MCI_SAVE SAVE 将数据存储到磁 盘文件中 MCI_SEEK SEEK 向前或向后检索 MCI_SET SET 设置设备信息 MCI_STOP STOP 停止播放或记录
回调函数是一个程序员不能显式调用的函数;通过将
回调函数的地址传给调用者从而实现调用。 回调函数使用是必要的,在我们想通过一个统一接口 实现不同的内容,这时用回调函数非常合适。比如,我 们为几个不同的设备分别写了不同的显示函数: void TVshow(); void ComputerShow(); void NoteBookShow(); 这时我们想用一个统一的显示函数,就可以用回调函 数void show(void (*ptr)())了。 使用时根据所传入的参数 不同而调用不同的回调函数。
– 调用MCI函数mciSendString(),向MCI发送命令 字符串 – 调用mciSendCommand(),向MCI发送命令消 息
MCI(媒体控制接口)相关知识

MCI(媒体控制接口)相关知识MCI_BREAK 设置中断键,缺省是”CTRL+BREAK"MCI_CAPTURE 抓取当前帧并存入指定文件,仅用于数字视频MCI_CLOSE 关闭设备MCI_CONFIGURE 弹出配置对话框,仅用于数字视频MCI_COPY 拷贝数据至剪贴板MCI_CUE 延时播放或录音MCI_CUT 删除数据MCI_DELETE 删除数据MCI_ESCAPE 仅用于激光视频MCI_FREEZE 将显示定格MCI_GETDEVCAPS 获取设备信息MCI_INDEX 当前屏幕显示与否,仅用于VCR设备MCI_INFO 获取字符串信息MCI_LIST 获取输入设备数量,支持数字视频和VCR设备MCI_LOAD 装入一个文件MCI_MARK 取消或做一个记号,与MCI_SEEK配套MCI_MARK 取消或做一个记号,与MCI_SEEK配套MCI_MONITOR 为数字视频指定报告设备MCI_OPEN 打开设备MCI_PASTE 粘帖数据MCI_PAUSE 暂停当前动作MCI_PLAY 播放MCI_PUT 设置源、目的和边框矩形MCI_QUALITY 定义设备缺省质量MCI_RECORD 开始录制MCI_RESERVE 分配硬盘空间MCI_RESTORE 拷贝一个bmp文件至帧缓冲MCI_RESUME 使一个暂停设备重新启动MCI_SAVE 保存数据MCI_SEEK 更改媒体位置MCI_SET 设置设备信息MCI_SETAUDIO 设置音量MCI_SETTIMECODE 启用或取消VCR设备的时间码MCI_SETTUNER 设置VCR设备频道MCI_SETVIDEO 设置video参数MCI_SIGNAL 在工作区上设置指定空间MCI_STATUS 获取设备信息MCI_STEP 使播放设备跳帧MCI_STOP 停止播放MCI_SYSINFO 返回MCI设备信息MCI_UNDO 取消操作MCI_UNFREEZE 使使用MCI_UNFREEZE的视频缓冲区恢复运动MCI_UPDATE &nb。
《多媒体应用程序设计》教学课件2

MMControl控件
第6章 程序设计实践
6.1 多媒体应用程序设计
VCD播放器程序设计
VCD播放器程序能够打开、播放视频文件。程序 运行界面如图:
VCD播放器程序设计
设计思路
主 要 利 用 VB 提 供 的 MMControl 控 件 来 设 计 。 MMControl控件具有强大的音频处理功能(可以处理不 同格式的声音文件)和视频处理(视频处理主要就是播 放视频文件,视频文件一般包括二个部分,即视频部分 和声音部分)功能,能够打开、播放多种格式的的音频 文件和视频文件。
MMControl控件
加入MMControl控件
在工具箱单击鼠标右键,在弹出的菜单中选择“部件” 项,在接着弹出的“部件”对话框中选中Microsoft Multimedia Control 6.0选项,点击“确定”后即完成 MMControl控件的加入。加入到控件工具箱中的 MMControl控件图标。
2.界面上各个控件或对象的属性设置 代码编写 (详见实例)
VCD播放器则将直接利用MMControl控件来控制播放视 频文件。
MMControl控件
MMControl控件是多媒体编程中最常用和最重要的控件, 该控件直接管理媒体控制接口(MCI)设备上的多媒体 文件的记录与回放。从外观上看,MMControl控件就是 一组按钮(如图所示)。它被用来向诸如声卡、MIDI序 列发声器、CD-ROM驱动器、视频CD播放器和视频磁带 记录器及播放器等设备发出MCI命令。另外,MCI控件 还支持Windows(*.avi)视频文件的回放。
第12章多媒体开发与MCI与MMAPI编程

第三篇多媒体开发多媒体开发是多媒体技术的一个重要方面,也是计算机专业人员可充分发挥自己长处的地方。
本篇主要介绍,在Windows环境下进行多媒体开发的,各种应用程序编程接口的使用方法。
本篇首先介绍多媒体开发的一般概念,比较两类媒体集成工具的优劣;然后给出在Windows中播放波形音频的三种方法与函数;重点介绍传统的Windows高/底层多媒体编程接口MCI和MMAPI,对后者主要介绍MIDI和MMIO编程。
本篇的另一个重点内容,是介绍微软公司所推崇的(多媒体和计算机游戏的开发接口)DirectX SDK编程。
先概述DirectX的发展历史和版本演化、功能结构与组件模块,重点介绍DirectX的主要组件Direct3D和DirectSound的基本编程方法,并给出若干实例。
本篇包含如下2章:⏹第12章多媒体开发与MCI和MMAPI编程⏹第13章DirectX编程入门第12章多媒体开发与MCI和MMAPI编程本章先概述多媒体开发的要素、过程和工具,接着给出播放波形音频文件的三个高层函数,然后讨论MCI、MMIO与MIDI等多媒体编程接口,重点介绍MCI编程。
12.1 多媒体开发概述多媒体的开发有人、环境和工具三个要素,其开发过程与人员有关,其开发工具分为素材准备和媒体集成两大类,而其中的媒体集成工具又可分成编程和著作两类。
12.1.1 开发要素⏹人——开发者= 设计人员+ 编程人员⏹环境——软硬件= 多媒体计算机(MPC等)+ 多媒体操作系统(MOS)⏹工具——开发软件= 素材准备工具+ 媒体集成工具(编程/著作)12.1.2 开发过程与人员多媒体开发的过程与相关人员如图12-1所示。
图12-1 多媒体的开发过程与相关人员12.1.3 开发工具多媒体的开发工具可以分为素材准备和媒体集成两大类,而其中的集成工具又可进一步分成编程和著作两类。
本书重点介绍集成工具中的编程类。
1。
素材准备工具●常用软件⏹文字:Word、WordPerfect、WPS、Cool 3D⏹音频:Cool Edit、Audio Editor、Wave Flow、Cakewalk⏹图形:Illustrator、Corel Draw、AutoCAD⏹图像:Photoshop、ACDSee⏹动画:Flash、GIF Animator、3DS、Maya⏹视频:Video Studio、Premiere、After Effects⏹综合:MediaStudio、Fireworks2。
2019年多媒体编程技术.ppt
有损耗压缩会使原始图片数据质量下降。 当您编辑和重新保存 JPEG 文件时,JPEG 会混合原
始图片数据的质量下降。这种下降是累积性的。 JPEG 不适用于所含颜色很少、具有大块颜色相近的
区域或亮度差异十分明显的较简单的图片。
18
TIFF:标记图像文件格式
TIFF 以任何颜色深度存储单个图像。被认为是印刷行业中受到支持 最广的图形文件格式。
int main()
{ MCI_OPEN_PARMS openParms;
openParms.lpstrDeviceType ="waveaudio";
openParms.lpstrElementName ="j:\\music\\rose.wav";
MCIERROR errorCode=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT|MCI_OPEN_ TYPE,(DWORD)(LPMCI_OPEN_PARMS)&openParms);
3
音频的数字化
计算机处理声音的第一步是将声音数 字化,数字化就是将连续信号变成离 散信号。
首先在时间上离散,取有限个时间点, 称为采样。
然后在幅度上离散,取有限个幅度值, 称为量化。
再经过编码,将模拟信号变成数字信号。
4
数字音频的性能指标
采样频率
Nyquist定理 3个常用的采样频率分别为11.025kHz 、
uMsg 命令消息。 fdwCommand 命令消息的标志位。 dwParam 指向包含命令消息参数结构的指针。
25
【例6-2】使用命令消息接口函数播放 wav文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(4)Play方法
– Play方法使Animation控件播放.avi文件。并且可以设置重
复播放次数和开始、结束帧. 。
12
Animation控件介绍(续)
(5)Stop方法
– Stop方法使Animation控件终止播放.avi文件。Stop方 法仅终止那些用Play方法启动的动画。对通过设置 AutoPlay属性为True的自动播放,使用Stop方法会 返回错误。可以通过设置AutoPlay属性为False来终 止播放。
(2)Center属性
– Center属性为True时,根据图像的大小,在控件中心显 示.avi文件;当设置为False时,.avi动画定位在控件的左 上角。
(3)Open方法
– Open方法打开一个要播放的.avi文件。如果AutoPlay属性 设置为True,则一打开就开始播放,在关闭.avi文件或设 置AutoPlay属性设置为False之前,它都一直重复播放。
第9章 Visual Basic多媒体程序设计
• Visual Basic是一个功能强大的编程环境, 且与Windows系统紧密结合,对多媒体编 程提供了丰富的支持。
• 利用Visual Basic进行多媒体开发主要有 两种方法:利用多媒体控件和Windows API函数。
.
1
1. 多媒体控件
• Visual Basic提供了几种用于多媒体开发的控 件,主要包括以下几种:
• Visual Basic提供了直接调用Windows的API函 数的功能,通过调用API函数,可以实现对 系统的各个层次的功能调用。
• Windows的动态链接库文件winmm.dll文件中
包含了100多个具有多媒体处理功能的API函
数,这些函数大多为低级的程序接口,可以
用于处理语音、合成音乐、动画、视频等。
9.1.1 Animation控件介绍
9.1.2 Animation控件应用实例
.
11
9.1.1 Animation控件介绍
பைடு நூலகம்
(1)AutoPlay属性
– 将 AutoPlay 属 性 设 置 为 True 时 , 一 旦 加 载 . avi 文 件 , Animation控件会自动连续循环地播放这个.avi文件。
(6)Close方法
– Close方法使Animation控件关闭当前打开的.avi文件。 如果没有加载任何文件,则Close方法不执行任何操 作,也不会产生任何错误。
.
13
9.1.2 Animation控件应用实例
• 【例9.1】利用Animation控件设计一个简 单的播放.avi动画的程序。
(1)Animation控件 (2)MCI控件 (3)ActiveMovie控件 (4)PictureClip控件 (5)MCIWnd控件
.
2
(1)Animation控件
• Animation控件也称为无声控件,用该控 件可以播放无声动画文件
• 也不是所有的无声动画文件都可以播放, 它 只 能 播 放 未 经 压 缩 的 或 者 用 RLE 格 式 压缩的无声动画文件。
9.1 Animation控件 9.2 MCI控件 9.3 MediaPlayer控件 9.4多媒体API函数
.
10
9.1 Animation控件
• Animation 控件是一个动画播放控件, Windows下的文件复制进度栏就是使 用 Animation 控件的一个实例,在执 行复制操作时,纸页从一个文件夹 “飞”到另一个文件夹,非常形象地 告诉用户系统正在进行拷贝动作。
.
3
(2)MCI控件
• MCI控件可用于管理多媒体控制接口(MCI) 设 备 , 这 些 设 备 包 括 声 卡 、 MIDI 发 生 器 、 CD-ROM驱动器、音频播放器、视频播放器 和视频磁带录放器。
• MCI控件具有一组执行MCI命令的下压式按 钮,包括播放、暂停、向后步进、向前步进、 停止、录制和弹出等。
.
15
说明
• avi是Microsoft公司开发的一种数字音频 与视频文件格式,现已被大多数操作系 统直接支持。avi格式允许视频和音频交 错在一起同步播放,但avi文件没有限定 压缩标准,由此导致avi文件格式不具有 兼容性。不同压缩标准生成的avi文件必 须使用对应的解压缩算法才能进行播放, 故本例只能播放不含声音的未压缩或使 用行程编码(RLE)压缩的avi文件。
.
8
常用的MCI高级API函数
• mciExecute:用于向MCI传送一个命令字 符串,以执行各种播放操作。
• mciSendString: 也 是 向 MCI 传 送 一 个 命 令字符串,并可接受反馈信息。
• mciGetErrorString • GetShortPathName
.
9
本章内容
.
4
(3)ActiveMovie控件
• ActiveMovie 控件可以播放 MPEG、AVI、 MIDI和WAV等媒体文件,该控件是MCI控 件的增强版本
• ActiveMovie控件还自带时间数字显示和进 度控制,并可以随意改变播放的起点。
.
5
(4)PictureClip控件
• PictureClip控件用于存储快速显示的位图 文件,在建立动画或需要存储大量的位 图文件时会用到它。
.
14
If cmdPlay.Caption = "播放" Then Animation1.Open App.Path & "\clock.avi" '加载动画文件 Animation1.Play cmdPlay.Caption = "停止" Else Animation1.Stop cmdPlay.Caption = "播放" End If
.
6
(5)MCIWnd控件
• MCIWnd控件的功能与MCI控件类似,但 MCIWnd 控 件 播 放 复 合 型 多 媒 体 设 备 , 不能播放简单型设备。
.
7
2. 多媒体API函数
• 使用MCI控件开发Windows系统下的多媒体 程序,具有简单、快捷、方便的特点。但在 实际程序设计中,常会碰到一些利用MCI控 件不好解决的问题。
.
16
9.2 MCI控件
• MCI是微软Windows定义的多媒体接口标准。