基于vc开发工具的媒体播放器软件设计—毕业设计论文内容摘要:

AVI、 MIDI、 VOD、 AU、 MP3 等,同时可以播放 Quick Time 文件。 Quick Time Player Quick Time Player 是 Apple 公司的媒体播放器,现已推出了 Quick Time 版,还有 Windo ws 版和 Mac 版,其特点是和 Inter 紧密结合,安装是在网上进行的。 Quick Time Player 能够直接播放的格式有 Quick Time 电影、 AVI、 AIFF音 频、 SGI 图像、 Macromedia Flash 等。 此外, Quick Time Player 还能够输入各种格式的音频、视频和图像媒体文件,并能转换输出为其他格式。 Quick Time Player 还支持基于 HTTP、 RTP、 RTSP、 FTP 流格式的在线音频和视频。 三、 MCI 命令接口编程 Windows MCI(media control interface)是控制多媒体设备的高层、通用的命令接口。 它白日做梦一组与设备无关的函数和命令,可有效地控制多媒体设备。 MCI 可控制所有 Windows 能驱动的多媒体设备,包 括 CD 音频( CD Audio)、数字视频、动画、数字化波形声音、 MIDI 音序器、录像机及影碟机等。 MCI 包含在 Windows 系统的 动态链接库中,有以协调多媒体事件和 MCI 设备驱动程序之间的通信。 一些 MCI 设备驱动程序,如影碟机设备驱动程序,可以直接控制目标设备;而另外一些 MCI 设备驱动程序,如 Wave 和 MIDI设备驱动程序,可通过 MMSYSTEM 中的函数,间接控制目标设备;还有一些 MCI设备驱动程序则提供与其他 Windows 动态链接库连接的高层接口。 MCI 设备 使用 MCI 的应用程序通过指定 MCI 的设备来区分 MCI 设备,设备类型说明了设备的物理类型。 表 1 表出了可能用到的 MCI 设备类型。 表 31 MCI 设备类型 MCI 设备 说 明 Cdaudio 激光唱机 Waveaudio 数字化波形声音设备 Sequencer MIDI 音序器 Overlay 视频叠加设备(窗口中的模拟视频) Dat 数字化磁带音频播放机 Digitalvideo 窗口中的数字视频 Scanner 图像扫描仪 Vcr 磁带录像机或播放机 Videldisc 影碟机 Mmmovie 多媒体影片播放器 Other 示定义的 MCI 设备 MCI 函数与命令 Microsoft 提供的 文件中定义了调用了 MCI 功能的数据类型和函数原型,在使用 MCI 功能的任何源模块中都应包含该文件。 MCI 命令 应用程序能过 MCI 设备发送命令(命令消息或命令字符串)来控制 MCI 设备,MCI 命令可以分为 4 类,如下所术。 1) 系统命令:直接由 MCI 解释并由系统处理,是不传送到 MCI 设备的命令。 2) 通用命令:所有 MCI 设备都支持的 MCI 命令。 3) 可选命令: MCI 设备可选择使用的 MCI 命 令。 4) 专用命令:针对某类 MCI 设备或集合的专有 MCI 命令。 MCI 定义了两种接口方式,即命令消息方式和命令字符串方式。 相应地, MCI命令可分为命令消息和命令字符串。 主要的 MCI 命令及分类如表 2 所示,这些命令可能具有其相应的扩展形式。 表 31 MCI 命令列表 MCI 命令消息 MCI命令字符串 MCI 命令说明 MCI命令类型 MCI_SYSINFO SYSINFO 返回有关 MCI 设备的停息 系统命令 MCI_BREAK BREAK 为一个指定的 MCI设备设置一个 终止键 MCI_SOUND SOUND 播放一段 Windows 指定的系统声音 MCI_CLOSE CLOSE 关闭一个 MCI 设备 通用命令 MCI_GETDEVCAPS GETDEVCAPS 获得一个 MCI 设备的性能参数 MCI_INFO INFO 从一个 MCI 设备得到有关的信息 MCI_OPEN OPEN 初始化一个 MCI 设备 MCI_STATUS STATUS 从一个 MCI 设备返回有关的状态信息 MCI_LOAD LOAD 从一个磁盘文件中加载数据 可选命令 MCI_PAUSE PAUSE 暂停播放数据 MCI_PLAY PLAY 开始播放数据 MCI_RECORD RECORD 开始记录数据 MCI_RESUME RESUME 重新开始播放或记录 MCI_SAVE SAVE 将数据存储到磁盘文件中 MCI_SEEK SEEK 向前或向后检索 MCI_SET SET 设置设备信息 MCI_STOP STOP 停止播放或记录 MCI 命令都可以带两个标志命令来控制命令的方式,即“ wait”和“ notify”。 它们在命令消息和命令字符串接口的形式和意思 如表 3 所示。 表 32 MCI 标志命令 命令消息 命令字符串 功能 MCI_WAIT wait 通知 MCI 设备等, MCI 命令执行完后,才能将控制权还给应用程序。 MCI_NOTIFY notify 通知 MCI 设备等,立刻将控制权交给应用程序,但当命令执行完后,向应用程序发送 MM_MCINOTIFY 消息。 所有 MCI函数都以 mci为前缀。 对应于 MCI命令消息和命令字符串接口方式,MCI 函数也分为两类,即命令消息函数和命令字符串函数。 在 中定义 了这些函数的原型。 MCI 函数如表 4 所示。 表 33 MCI 函数 函数名 功能 类型 mciSendCommand 发送命令消息 命令消息接口函数 mciGetDeviceID 获取 MCI 设备的 ID mciSetYieldProc 设定一个回调函数,在结束带 wait 标志的命令时调用 mciGetYieldProc 获取当前的回调函数 mciSendString 发送命令字符串 命令字符串接口函数 mciGetErrorString 获取当前 MCI 错 误的字符串描述 公用函数 MCI 命令消息接口方式 MCI 命令消息接口方式利用消息和数据结构来给多媒体设备发送命令和接收 MCI 设备传来的信息。 这种方式的接口函数主要有 3 个,即 mciSendCommand, mciGetDeviceID 和 mciGetErrorString。 它们的函数原型如下: MCIERROR mciSendCommand ( MCIDEVICEID IDDevice, //设备 ID UINT uMsg, //命令消息 DWORD fdwCommand, //命令消息标志 DWORD dwParam //命令消息使用的结构参数地址 )。 MCIDEVICEID mciGetDeviceID ( LPCTSTR lpszDevice //设备类型 )。 BOOL ( DWORD fdwError, //错误代码 LPTSTR lpszErrorText, //错误描述 UINT cchErrorText //错误描述长度 )。 mciGetDeviceID 通过传送 MCI 设 备名 lpszDevice 来获取 MCI_OPEN 命令消息找开 MCI 设备的标识号 wDeviceID,其值可用于 mciSendCommand 的参数wDeviceID。 mciSendCommand 用于向标识号为 wDeviceID 的 MCI 设备发送命令消息 uMsg。 当用送 MCI_OPEN 命令消息打开一个设备时,将自动创建一个设备标识号。 如果设备打开成功,可以从 MCI_OPEN_PARMS 结构的 wDeviceID 数据域中取得该设备的标识号,该值将保存以供后续的 MCI 命令使用。 如果 mciSendCommand调用成功,则返 回值为 0;否则表示设备驱动出错,这时可用 mciGetErrorString来取得错误信息的文字描述。 MCI 提供一个名为 MCI_ALL_DEVICE_ID 的特殊设备标识号。 当前所有已打开的 MCI 设备都将接收到对 MCI_ALL_DEVICE_ID 发送的任何 MCI 命令。 使用任何一个 MCI 设备前都应先用 MCI_OPEN 打开它。 打开 MCI 设备时,要求指定相应的 MCI_OPEN_PARMS 结构。 如果打开设备成功,则该结构的 wDeviceID域返回 MCI 设备的标识号 ID。 使用 MCI_OPEN 命令消息时可使用的命令消 息中表 5 所示。 MCI_OPEN_PARMS结构定义如下: typedef struct { DWORD dwCallback。 //回调窗口句柄 MCIDEVICEID wDeviceID。 //设备打开成功,返回的设备号 LPCSTR lpstrDeviceType。 //设备类型 LPCSTR lpstrElementName。 //复合设备的设备元素,通常为文件名 LPCSTR lpstrAlias。 //指定 的设备别名 } MCI_OPEN_PARMS。 表 34 MCI_OPEN 命令消息标志 消息标志 意义 MC_OPEN_ALIAS MCI_OPEN_PARMS 结构的 lpstrAlias 域中指定了设备别名 MC_OPEN_ELEMENT MCI_OPEN_PARMS 结构的 lpstrElementName 域中指定了设备元素 MC_OPEN_SHAREABLE 按共享设备方式打开设备 MC_OPEN_TYPE MCI_OPEN_PARMS 结构的 lpstrDeviceType 域中指定了设备类型 MC_OPEN_TYPE_ID MCI_OPEN_PARMS 结构的 lpstrDeviceType 域中指定了设备类型 ID 打开一个简单的 MCI 设备不需要指定设备元素,即不需要指定一个数据文件,所以可以仅仅指定 MCI_OPEN_PARMS 结构中的 wDeviceID 和 lpstrDeviceType两个数据域。 要打开一个复合的 MCI 设备,必须指定设备元素数据域lpstrElementName和设备类型数据域 lpstrDeviceType。 对于打开复合 MCI设备,有以下 3 种方式可供 选择: 1) 为确定 MCI 设备的性能,可以只指定设备的类型来打开 MCI 设备。 这时,只允许确定 MCI 设备的性能,然后关闭设备,不般不能进行其它的操作。 2) 为使一个设备元素与指定设备相联系,应同时指定设备元素(数据文件名)和设备类型。 这时可对设备进行相应的各种操作。 3) 在使用隐含的 MCI 设备时,可只指定 MCI 设备(数据文件名),而把设备类型指定为 NULL; MCI 将根据设备元素的扩展名从系统定义中选择隐含约定的 MCI 设备。 应用程序在使用完一个 MCI 设备后应明确地关闭该 MCI 设备。 MCI_CLOSE 命令消息用于关闭并释放 MCI 设备,即取消应用程序对 MCI 设备或设备元素的访问权。 当用 MCI_SYSINFO 命 令消 息 获取 MCI 设备 系 统信 息 时 ,需 要 在mciSendCommand 的 dwParam 参数中指定 MCI_SYSINFO_PARMS 结构的地址,系统信息将通过该结构返回。 与 MCI_SYSINFO 命令消息相关的消息标志如表 6 所示。 MCI_SYSINFO_PARMS 结构定义如下: typedef struct { DWORD dwCallback。 //回调窗口句柄 LPSTR lpstrReturn。 //返回信息 缓冲区地址 DWORD dwRetSize。 //返回信息大小 DWORD dwNumber。 //索引号 UINT wDeviceType。 //设备类型 } MCI_SYSINFO_PARMS。 表 35 MCI_SYSINFO 命令消息标志 消息标志 意义 MCI_SYSINFO_QUANTITY 返回指定的设备类型的数目,如与 MCI_SYSINFO_OPEN 一起使用,则仅返回已打开的设备的数目 MCI_SYSINFO_NAME 返回设备名,如与 MCI_SYSINFO_OPEN 一起使用,则仅返回已打开的设备的名称 MCI_SYSINFO_OPEN 仅返回已打开设备的信息 MCI_SYSINFO_INSTALLNAME 指定设备的安装名称 在使用 MCI 设备时,还应注意共享、等待与通告等标志的使用。 MCI 命令字符串接口方式 MCI 命令字符串使用 ASCII 字符串来发送驱动 MCI 设备的命令,这种方式采用的接口函数有 mciSendString、 mciGetErrorString。 mciSendString 用于向 MCI 设备 发送命令字符串,其函数原型如下: MCIERROR mciSendString( LPCT。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。