Multimedia MCI错误返回码详解(包括mciSendString)
MCISendString详细参数
MCISendString详细参数(注:本文以2000年七月的MSDN解释为准)MCI Command String是多媒体设备的程序接口。
通过它,我们可以打开一个多媒体文件,例如mp3,VCD,Mpeg4格式的文件等等,并对它进行播放,暂停,关闭等操作。
现在小弟有幸给大家介绍一下MCI Command String的使用方法。
MCI Command String是通过mciExecute或mciSendString两个函数执行的。
这两个函数的声明如下:Private Declare Function mciExecute Lib "winmm.dll" Alias"mciExecute" (ByVal lpstrCommandAs String) As LongPrivate Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVallpstr--Command As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long这两个函数都有一个叫lpstrCommand的参数,这个参数就是我们今天要介绍的MCI Command String。
其中函数mciSendString还有三个参数,lpstrReturnString是一个字符串,它用来接收mciSendString函数返回的信息(例如,我们在lpstrCommand中的命令是让函数返回打开的文件的设备类型,那么函数就把设备类型的信息保存在lpstrReturnString参数中。
);uReturnLength参数用来指定参数lpstrReturnString的长度;hwndCallback是接收“wait”、“notify”消息的窗口句柄,在Visual Basic中调用时该参数设为0即可。
mciSendString用法
mciSendString⽤法使⽤MCI API,源⽂件中需要包含头⽂件 Mmsystem.h,在Project->Settings->Link->Object/libray module中加⼊库 Winmm.lib。
VS2008在源⽂件加上#include "mmsystem.h" #pragma comment(lib,"winmm.lib")mciSendString是⽤来播放多媒体⽂件的API指令,可以播放MPEG,AVI,WAV,MP3,等等,下⾯介绍⼀下它的使⽤⽅法: 该函数有四个参数:第⼀个参数:要发送的命令字符串。
字符串结构是:[命令][设备别名][命令参数].第⼆个参数:返回信息的缓冲区,为⼀指定了⼤⼩的字符串变量.第三个参数:缓冲区的⼤⼩,就是字符变量的长度.第四个参数:回调⽅式,⼀般设为零返回值:函数执⾏成功返回零,否则返回错误代码MCIERROR mciSendString( LPCTSTR lpszCommand, //MCI命令字符串 LPTSTR lpszReturnString, //存放反馈信息的缓冲区 UINT cchReturn, //缓冲区的长度 HANDLE hwndCallback //回调窗⼝的句柄,⼀般为NULL ); //若成功则返回0,否则返回错误码。
该函数返回的错误码可以⽤mciGetErrorString函数进⾏分析,该函数的声明为: BOOL mciGetErrorString( DWORD fdwError, //函数mciSendString返回的错误码 LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区 UINT cchErrorText //缓冲区的长度 );⼀,打开多媒体⽂件。
⾸先在Dialog上⾯放⼀个Picture控件,MCISendString就在这个Picture控件的平⾯上播放多媒体⽂件,设Picture控件的ID为IDC_STATIC1:CStatic *pStatic=(CStatic*)GetDlgItem(IDC_STATIC1);HWND h=pStatic->GetSafeHwnd();CString open1;char buf[256];open1.Format("open f:""mpeg""mpeg1.avi type MPEGVideo Alias movie parent %u Style %u notify", h,WS_CHILD); mciSendString(open1.GetBuffer(open1.GetLength()),buf,sizeof(buf),NULL);这样F盘下⾯的mpeg⽬录下的mpeg1.avi就打开了,其中的type MPEGVideo是指打开MPEG,AVI等类型,如果不加type MPEGVideo这⼀句,就是打开WAV,MP3等,Alias movie定义了mpeg1.avi的别名为movie,以后可以通过操做movie就可以操作mpeg1.avi。
SIP协议错误代码code大全
1)100 Trying说明caller正在呼叫,但还没联系上callee。
180 Ringing 说明callee已经被联系上,callee的铃正在响.收到这个信息后,等待200 OK2)181 Call is being forwarded说明call被重新路由到另外一个目的地3)182 Queued说明callee当前是不可获得的,但是对方不想直接拒绝呼叫,而是选择放在呼叫队列中4)183 Session progress用来警告caller频段(inband)错误。
当从PSTN收到一个ISDN消息,SIP gateway 产生183 Session progress 。
建立专有承载QCI12xx successful Responses200 OK3xx Redirection Responses5)300 Multiple choices说明呼叫的地址被解析成多个地址,所有的地址都被提供出来,用户或用户代理可以从中选择联系哪个。
6)301 Moved permanently说明指定地址的用户已经永远不可用,在头中已经用另外一个地址替换了.7)302 Moved temporarily说明指定地址的用户临时不可用,在头中已经用另外一个地址代替了.8)305 Use proxy说明caller必须用一个proxy来联系callee.9)380 Alternative service说明call不成功,但是可选择其他的服务4xx Request Failure Responses10)400 Bad Request说明由于非法格式,请求不能被理解。
11)401 Unauthorized说明请求需要用户认证。
12)402 Payment required说明完成会话需要付费.13)403 Forbidden说明server已经收到并能理解请求但不提供服务。
14)404 Not Found说明server有明确的信息在指定的域中用户不存在.15)405 Method Not Allowed说明请求中指定的方法是不被允许的。
microsoftWINDOWS系统错误代码[收藏]
microsoftWINDOWS系统错误代码[收藏] MS Windows Error MessagesCode Error Message0 操作成功完成。
1 功能错误。
2 系统找不到指定的⽂件。
3 系统找不到指定的路径。
4 系统⽆法打开⽂件。
5 拒绝访问。
6 句柄⽆效。
7 存储控制块被损坏。
8 存储空间不⾜,⽆法处理此命令。
9 存储控制块地址⽆效。
10 环境错误。
11 试图加载格式错误的程序。
12 访问码⽆效。
13 数据⽆效。
14 存储器不⾜,⽆法完成此操作。
15 系统找不到指定的驱动器。
16 ⽆法删除⽬录。
17 系统⽆法将⽂件移到不同的驱动器。
18 没有更多⽂件。
19 介质受写⼊保护。
20 系统找不到指定的设备。
21 设备未就绪。
22 设备不识别此命令。
23 数据错误 (循环冗余检查)。
24 程序发出命令,但命令长度不正确。
25 驱动器⽆法找出磁盘上特定区域或磁道的位置。
26 ⽆法访问指定的磁盘或软盘。
27 驱动器找不到请求的扇区。
28 打印机缺纸。
29 系统⽆法写⼊指定的设备。
30 系统⽆法从指定的设备上读取。
31 连到系统上的设备没有发挥作⽤。
32 进程⽆法访问⽂件,因为另⼀个程序正在使⽤此⽂件。
33 进程⽆法访问⽂件,因为另⼀个程序已锁定⽂件的⼀部分。
36 ⽤来共享的打开⽂件过多。
38 到达⽂件结尾。
39 磁盘已满。
50 不⽀持⽹络请求。
51 远程计算机不可⽤。
52 在⽹络上已有重复的名称。
53 找不到⽹络路径。
54 ⽹络忙。
55 指定的⽹络资源或设备不再可⽤。
56 已到达⽹络 BIOS 命令限制。
57 ⽹络适配器硬件出错。
58 指定的服务器⽆法运⾏请求的操作。
59 发⽣意外的⽹络错误。
60 远程适配器不兼容。
61 打印机队列已满。
62 ⽆法在服务器上获得⽤于保存待打印⽂件的空间。
63 删除等候打印的⽂件。
64 指定的⽹络名不再可⽤。
65 拒绝⽹络访问。
66 ⽹络资源类型错误。
67 找不到⽹络名。
海康设备错误代码(20210123085333)
NET_DVR_ERRORDISKNUM 20没有错误NET_DVR_NOERROR用户名密码错误。
注册时输入的 用户名或者密码错误。
权限不足。
该注册用户没有权限 执行当前对设备的操作,可以与 远程用户参数配置做对比。
SDK 未初始化。
通道号错误。
设备没有对应的通 道号。
连接到设备的用户个数超过最 大。
版本不匹配。
SDK 和设备的版本不 匹配。
连接设备失败。
设备不在线或网 络原因引起的连接超时等。
向设备发送失败。
从设备接收数据失败。
从设备接收数据超时。
传送的数据有误。
发送给设备或 者从设备接收到的数据错误,如 远程参数配置时输入设备不支持 的值。
调用次序错误。
无此权限。
设备命令执行超时。
串口号错误。
指定的设备串口号 不存在。
报警端口错误。
指定的设备报警 输出端口不存在。
参数错误。
SDK 接口中给入的输入或输出参数为空。
设备通道处于错误状态 设备无硬盘。
当设备无硬盘时, 对设备的录像文件、硬盘配置等 操作失败。
硬盘号错误。
当对设备进行硬盘 管理操作时,指定的硬盘号不存 在时返回该错误。
NET_DVR_PASSWORD_ERROR 1 NET_DVR_NOENOUGHPRI2NET_DVR_NOINIT3 NET_DVR_CHANNEL_ERROR4 NET_DVR_OVER_MAXLINK5 NET_DVR_VERSIONNOMATCH6NET_DVR_NETWORK_FAIL_CONNECT7 NET_DVR_NETWORK_SEND_ERROR 8 NET_DVR_NETWORK_RECV_ERROR 9 NET_DVR_NETWORK_RECV_TIMEOU1T 0NET_DVR_NETWORK_ERRORDATA 11NET_DVR_ORDER_ERROR 12 NET_DVR_OPERNOPERMIT 13 NET_DVR_COMMANDTIMEOUT 14 NET_DVR_ERRORSERIALPORT 15 NET_DVR_ERRORALARMPORT 16 NET_DVR_PARAMETER_ERROR 17 NET_DVR_CHAN_EXCEPTION 18 NET_DVR_NODISK19NET_DVR_DISK_FULL 21 NET_DVR_DISK_ERROR 22 NET_DVR_NOSUPPORT 23 NET_DVR_BUSY 24 NET_DVR_MODIFY_FAIL 25 NET_DVR_PASSWORD_FORMAT_ERR2O6 R NET_DVR_DISK_FORMATING 27 NET_DVR_DVRNORESOURCE 28 NET_DVR_DVROPRATEFAILED 29 NET_DVR_OPENHOSTSOUND_FAIL 30NET_DVR_DVRVOICEOPENED 31 NET_DVR_TIMEINPUTERROR 32 NET_DVR_NOSPECFILE 33 NET_DVR_CREATEFILE_ERROR 34NET_DVR_FILEOPENFAIL 35NET_DVR_OPERNOTFINISH 36 NET_DVR_GETPLAYTIMEFAIL 37 NET_DVR_PLAYFAIL 38 NET_DVR_FILEFORMAT_ERROR 39 NET_DVR_DIR_ERROR 40 NET_DVR_ALLOC_RESOURCE_ERRO4R1 NET_DVR_AUDIO_MODE_ERROR 42NET_DVR_NOENOUGH_BUF 43NET_DVR_CREATESOCKET_ERROR 44 NET_DVR_SETSOCKET_ERROR 45NET_DVR_MAX_NUM 46NET_DVR_USERNOTEXIST 47 设备硬盘满。
MCI命令简介
注]下面是我编程时看资料(主要是MSDN)的随手笔记,不全,随着日后的学习再进一步扩充吧。
只是为了日后查找方便,可以很快回想起各种命令的用法。
俗话说好记性不如烂笔头嘛:)MciSendCommand 命令格式:MCIERROR mciSendCommand(MCIDEVICEID IDDevice, //接受命令的设备ID,由 MCI_OPEN 命令的wDeviceID变量返回UINT uMsg, //MCI 命令DWORD fdwCommand, //flags 列表区,一般都与 DWORD dwParam 中的相关成员配合使用(DWORD)(相应MCI命令的参数区类型) dwParam);返回的值:返回 0 表示成功,否则为出错代码.MCI 命令列表:其中比较常用的指令有MCI_OPEN、MCI_CLOSE、MCI_PLAY、MCI_STOP、MCI_PAUSE、MCI_STATUS等等。
--MciSendCommand 命令格式:发送命令消息到指定的MCI device.MCIERROR mciSendCommand(MCIDEVICEID IDDevice, //接受命令的设备ID,由 MCI_OPEN 命令的wDeviceID变量返回UINT uMsg, //MCI 命令DWORD fdwCommand, //flags 列表区,一般都与 DWORD dwParam 中的相关成员配合使用(DWORD)(相应MCI命令的参数区类型) dwParam);返回的值:返回 0 表示成功,否则为出错代码.参数:IDDeviceMCI device的标识符。
(此参数不被MCI_OPEN 命令消息所使用,被置为null)此参数IDDevice指定了设备标识,这个标识会在程序员使用MCI_OPEN打开MCI设备时由系统提供,保存在MCI_OPEN_PARMS结构的wDeviceID变量中。
uMsg命令消息(Command message).第二个参数指定将如何控制设备,详细请查阅上面“MCI指令”列表fdwCommandFlags for the command message.第三个参数为访问标识(flags)在后面有详细说明。
mcisendstring用法seek
mcisendstring用法seek关于mcisendstring函数的用法以及如何使用seek功能引言:在编程领域中,有许多函数和功能可以帮助我们更好地处理数据和操作文件。
其中,mcisendstring函数是一个非常有用的函数,它可以用于与音频设备进行通信和控制。
本文将深入探讨mcisendstring函数的用法,并介绍如何使用seek功能来控制音频播放。
第一部分:mcisendstring函数简介MCI(Media Control Interface)是一组用于控制多媒体设备的API函数,通过调用这些函数,我们可以在应用程序中控制CD、DVD、音频和视频设备。
其中的一个关键函数就是mcisendstring函数,它允许我们向多媒体设备发送各种命令。
具体来说,mcisendstring函数用于向MCI设备发送字符串命令,这些字符串命令可以控制设备的行为,例如播放、停止、暂停等。
使用mcisendstring函数的基本语法如下:C++MCIERROR mciSendString(LPCSTR lpszCommand, LPSTR lpszReturnString, UINT cchReturn, HANDLE hwndCallback);参数说明:- lpszCommand:一个以null字符结尾的字符串,它包含了要发送的命令。
- lpszReturnString:用于接收命令执行后的返回字符串结果。
- cchReturn:返回字符串缓冲区的长度。
- hwndCallback:回调窗口的句柄。
下面是一个示例,演示如何使用mcisendstring函数来播放一个音频文件:C++#include <windows.h>#include <mmsystem.h>int main(){MCIERROR mciError;mciError = mciSendString("open \"C:\\music\\song.mp3\" type mpegvideo alias mp3File", NULL, 0, 0);if (mciError == 0){mciError = mciSendString("play mp3File", NULL, 0, 0);}else{处理错误}return 0;}在上述代码中,我们首先使用mcisendstring函数打开一个音频文件,然后播放该文件。
多媒体技术教案1
-2-
第九章 补充内容:多媒体节目创作工具
如:cdaudio这样不使用文件的设备 复合设备是一种播放那个特定媒体文件(称为设备元素)的设备。例如MIDI音序器、MPEG 文件解压播放等。如果你想使用这一类符合复合设备,则必须提供相应的MIDI或MPEG文 件名。 复合设备在播放时要用到数据文件,如数字视频(digitalvideo)和波形音频 (waveaudio)设备,我们把这些数据文件叫做设备元素。 打开简单设备,只需指定设备名即可。 打开复合设备有3种方法: 只指定设备名; 只指定设备元素; 同时指定设备名和设备元素。
[mci] cdaudio=mcicda.drv sequencer=mciseq.drv waveaudio=mciwave.drv avivideo=mciavi.drv videodisc=mcipionr.drv vcr=mcivisca.drv MPEGVideo=CoolPlay.dll MPEGVideo2=mciqtz.drv ReelMagic=CoolPlay.dll
MCI 设备驱动
MCI 设备 MCI设备驱动 为了标志唯一的MCI设备驱动程序,MCI使用设备名。MCI设备名注册在SYSTEM.INI文件中的 MCI段。如果你的机器已经安装了声卡、电影卡(或软件解压系统)和CD-ROM驱动器,系统初 始化文件SYSTEM.INI文件中的MCI将会有下列内容。 等号左边为 MCI 设备名,右边为 MCI 驱动程序文件名。 注意: 设备类型和设备名是不同的概念: 设备类型 —— 指响应一组共用命令的一类MCI设备 设备名 —— 某一个MCI设备的名字。 系统需要用不同的设备名来区分属于同一设备类型的不同设备。 当安装了新的MCI驱动程序时,系统要用不同的设备名来区分。 设备名通常与驱动程序中的设备类型名相同,如cdaudio和waveaudio等,但也有例外, 如avivideo设备是一个digitalvideo类型的设备。 MCI设备分类 MCI可以分为简单设备和复合设备两种: 简单设备是一种使用时不必指定相关媒体文件的设备。例如用CD-ROM播放音频光盘时系 统打开的就是简单设备。
MediaCoder错误代码
MediaCoder 错误代码005∙描述:路径错误∙可能原因:o路径不存在o权限问题006∙描述:文件输入输出错误∙可能原因:o输入文件无法打开(可能被其它程序占用)o输出文件无法创建。
例如:输入文件来自一个只读介质,并设置输出目录为原目录。
007∙描述:无效的设置组合008∙描述:错误的音频格式设置∙可能原因:o你可能选择了一种后台终端或混流器不支持的音频格式。
o文件名中有系统默认语言之外的字符∙解决方案:o切换其它音频编码器(或其它音频格式)o切换容器格式o文件重命名009∙描述:错误的视频格式设置∙可能原因:o你可能选择了一种后台编码终端或混流器不支持的视频格式。
∙解决方案:o切换视频格式o换一种容器格式。
010∙描述:错误的容器设置∙可能原因:o编码终端或混流器不支持所选的容器格式。
∙解决方法:o切换容器格式o换一种混流器 (若不是自动选择)011∙描述:音频源发生错误∙可能原因:o活动音频源无法解码输入文件或设备∙解决方法:o尝试使用其它音频源012∙描述:发生了音频编码错误013∙描述:视频源发生错误∙可能原因:o活动视频源无法解码输入文件或设备∙解决方法:o尝试使用其它视频源014∙描述:视频编码器发生错误∙可能原因:o视频编码器没有按预期启动o视频编码器缺失015∙描述:混流器发生错误∙可能原因:o在混合转码后的音视频流时,所选混流器发生错误016∙描述:你正尝试使用一个无效的参数值017∙无法验证输入文件018∙无法在输出文件是写入标签019∙描述:输入文件没有完全被处理∙可能原因:o部分输入比特流存在错误o输入文件是一个不当的断裂文件o解码器在解码时发生错误,并意外终止020∙描述:混流器在混流时超时∙可能原因:o混流器存在问题o硬盘输入输出不一致。
电脑系统错误码解读与修复方法
电脑系统错误码解读与修复方法作为现代生活中不可或缺的工具,电脑在我们的日常工作和生活中扮演着重要的角色。
然而,使用电脑时可能会遇到各种错误码的问题,给我们的正常使用带来困扰。
本文将为您解读常见的电脑系统错误码,并提供相应的修复方法,帮助您快速解决这些问题。
一、蓝屏错误码蓝屏错误码是电脑系统常见的错误提示之一,表示系统发生了严重错误,无法正常工作。
不同的错误码代表着不同的问题,以下是几个常见的错误码及其对应的解决方法:1. 0x0000000A(IRQ_NOT_LESS_OR_EQUAL):该错误码通常表示硬件驱动冲突或者硬件故障。
解决方法包括更新驱动程序或者更换硬件。
2. 0x0000001E(KMODE_EXCEPTION_NOT_HANDLED):该错误码可能是由于软件或者硬件错误引起的。
解决方法包括更新或者卸载故障程序、检查硬件是否正常工作。
3. 0x0000007B(INACCESSIBLE_BOOT_DEVICE):该错误码表示无法访问启动设备,通常是硬盘故障或者硬盘驱动程序问题所致。
解决方法包括检查硬盘连接是否松动、更换硬盘或者重新安装相应的驱动程序。
二、DLL文件丢失或损坏错误码DLL文件是系统和软件运行所必需的动态链接库文件,当这些文件丢失或者损坏时,系统将无法正常工作。
以下是几个常见的DLL文件错误码及其对应的解决方法:1. 0x8007007E:该错误码表示系统无法找到指定的DLL文件。
解决方法包括重新安装相关软件、将缺失的DLL文件复制到系统目录下、更新系统补丁等。
2. 0x8007045D:该错误码表示在复制文件时发生了错误。
解决方法包括检查磁盘是否正常、更换损坏的硬盘或者使用第三方工具修复硬盘错误。
3. 0x80004005:该错误码通常表示未注册的DLL文件或者DLL文件损坏。
解决方法包括重新注册DLL文件、使用安全软件扫描并修复系统中的病毒、重新安装相应的软件等。
三、网络连接错误码使用电脑上网时,可能会遇到各种网络连接错误码,以下是一些常见的错误码及其对应的解决方法:1. 0x800CCC0E:该错误码表示无法连接到电子邮件服务器。
第3讲 多媒体编程技术
位图是一个像素值阵列,像素阵列存储在字节数 组中,每个像素的位数可以是1、4、8、24。 单色位图:每个字节存储八个像素,(每个像素 用0或1表示); 16色位图:每个字节存储二个像素; 256色位图:每个字节存储一个像素; 24位真彩:三个字节存储一个像素。
256色以下位图中存储的:像素值是调色板中值 的索引。 真彩色位图中存储的:像素的RGB值。 256是怎么来的?什么是RGB?
BOOL mciGetErrorString( DWORD fdwError, //错误码值 LPTSTR lpszErrorText, //错误信息字符串缓冲区 UINT cchErrorText) //缓冲区字符串长度 例:char buf[50]; MCIERROR mciError; mciError=mciSendString(“open tada.wav type Waveaudio”, buf,strlen(buf),NULL); If (mciError) {mciGetErrorString(mciError,buf,strlen(buf); AfxMessageBox(buf); Return;}// Waveaudio是设备名.
光栅操作码 描述 BLACKNESS 所有输出变黑 DSTINVERT 反转目标位图
光栅操作码 MERGECOPY MERGEPAINT NOTSRCCOPY NOTSRCERASE SRCAND SRCCOPY SRCERASE
SRCINVERT SRCPAINT WHITENESS
描述
用布尔AND来合并特征与源位图 用布尔OR来合并特征与源位图 拷贝反转源位图到目标 反转用布尔OR来合并源与目标位图的结果
第三讲
多媒体编程技术
3.1 多媒体概述 3.1.1 视觉类媒体 3.1.2 听觉类媒体 3.1.3 WIN 32的多媒体 3.2 VC++开发工具中声音的处理 3.2.1 波形声音的特点 3.2.2 波形音频文件的播放 3.3 VC++开发工具中图像的处理 3.4 VC++开发工具中视频的处理
VC 多媒体技术 MCI使用
MCI 命令列表 命令说明 命令类型
返回有关 MCI 设备的信息 为一个指定的 MCI 设备设置一个终止键 播放 Windows 指定的系统声音 关闭一个 MCI 设备 获得一个 MCI 设备的性能参数 从一个 MCI 设备得到有关的信息 初始化一个 MCI 设备 从 MCI 设备返回有关的状态 从一个磁盘文件中加载数据 暂停播放 开始播放 开始记录数据 重新开始播放或录音 将数据存储到磁盘文件中 向前或向后检索 设置设备信息 停止播放或记录 常用的 MCI 函数 类型 向 MCI 发送命令消息函数 可选命令 通用命令 系统命令
说 明: (1)mail.wav 是一个 WAV 声音文件,第 4 步时已经复制到此项目文件中。程序首先打开了 MCI 设 备,并把设备标识赋给了类的成员变量 m_MCIDeviceID。注意声音文件名不要带扩展名.wav。
6、播放声音文件 用 ClassWizard 为播放按钮(IDC_PLAY) ,在 CMyDlg 类添加鼠标单击的消息映射函 数,并加如下代码: void CMyDlg::OnPlay() { //添加控件通知消息处理代码 MCI_PLAY_PARMS mciPlayParms; mciPlayParms.dwFrom=0; //从文件开始处开始播放 mciSendCommand(m_MCIDeviceID,MCI_PLAY,MCI_FROM, (DWORD)(LPVOID)&mciPlayParms); } 7、在程序退出时停止播放并关闭 MCI 设备 用 ClassWizard 为 CMyDlg 类添加 WM_DESTROY 消息, 该消息映射函数能使程序 退出时停止声音文件的播放并关闭 MCI 设备。 void CMyDlg::OnDestroy() { CDialog::OnDestroy(); mciSendCommand(m_MCIDeviceID,MCI_STOP,MCI_WAIT,NULL); //停止播放 mciSendCommand(m_MCIDeviceID,MCI_CLOSE,MCI_WAIT,NULL); //关闭 MCI 设备 } (8)编译并运行程序,在单击“播放”按钮时,程序将播放声音;当单击“退出”按 钮或单击窗口的关闭按钮时,声音播放会立即停止。 7.2 MCI(媒体控制接口) 媒体控制接口(Media Control Interface)为 Windows 程序提供了在高层次上控制媒 体设备接口的能力。程序不必关心具体设备,就可以对激光唱机(CD) 、视盘机、波形 音频设备、视频播放设备和 MIDI 设备等媒体设备进行控制。对于程序员来说,可以把 MCI 理解为设备面板上的一排按钮,通过选择不同的按键(发送不同的 MCI 命令)就可以 让设备完成各种功能,而不必关心设备内部实现。例如,对于 play 按键,视盘机和 CD
mci控件
播放多媒体——MCI控件Windows已经为我们提供了一个关于多媒体处理的动态连接库WINMM.DLL(旧版本为MMSYSTEM.DLL),通过调用它所提供的API函数,我们就可以使用MCI指令进行多媒体方面的操作了。
让我们先来了解一下什么是MCI指令,MCI的全称是Media Control Interfase(媒体控制接口)。
实际上MCI是一个高级的函数调用接口,我们可以把它看作是一个解释器,通过它,我们就可以直接和外部音频或视频设备打交道了。
接下来,就需要了解一下需要用到的API和MCI指令。
有三个与MCI有关的API,它们是:mciSendString(MCI指令,返回文本,返回长度,句柄复查);mciExecute(MCI指令,返回文本,返回长度,句柄复查);mciGetErrorString(MCI指令,返回文本,返回长度,句柄复查)。
mciSendString函数的功能是传送指令字符串给MCI,mciExecute的功能和mciSendString一样,不同的是当发生错误时mciExecute会弹出对话框显示错误信息。
mciGetErrorString的功能是将MCI错误代码转换为字符串。
MCI的Command命令,最重要的一个,可以执行各种操作Open,Close,Play,Pause,Stop,Back,Step,Prev,Next,Seek,Record ,Eject,Sound和Save其格式如下:[窗体.]mand=命令字符串。
Open:使用MCI_OPEN命令打开一个设备;所用的属性:Notify(False),Wait(True),Shareable,Devicetype,FileName。
Close:使用MCI_CLOSE命令关闭一个设备;所用的属性:Notify(False),Wait(True)。
Play:使用MCI_PLAY;所用的属性:Notify(True),Wait(False),From,To。
MSN无法登录的错误代码含义及解决
MSN无法登录的错误代码含义及解决Windows Live Messenger 无法登录时通常会提示一串错误代码给你,那这些代码代表什么意思?如何解决对应的问题呢?请看小编整理的下列材料:错误80040111 或80040154:您无法登录Windows Live Messenger原因:由于DLL 文件或XML 分析程序出现问题而无法登录到Windows Live Messenger。
》注册DLL 文件1、在任务栏上,单击“开始”,然后单击“运行”。
2、键入“Regsvr32 %windir%\system32\msxml3.dll”,然后单击“确定”。
3、如果您接收到说明此步骤成功的消息,请继续执行下一步。
否则,请重新启动计算机,然后再次登录到Messenger。
》重新安装XML 分析程序1、访问Microsoft 面向XML 分析程序的下载网站(英文页面)。
2、单击页面底部的“msxml3.msi”。
3、按照屏幕上的指令进行操作。
》如果您仍然无法登录Messenger重新启动Messenger,然后重新登录。
错误80048820:您无法登录Windows Live Messenger原因:由于Internet 连接、防火墙(旨在帮助保护计算机免受未经授权的外部访问的一项安全功能。
它可以是硬件、软件或两者的组合) 、日期和时间设置、代理设置、安全设置或SSL 安全出现问题而无法登录。
服务器可能暂时不可用。
若要解决此问题:》查看您的Internet 连接通过访问另一个网站来确认您已连接到Internet。
如果您无法连接到网站,请与您的ISP (Internet 服务提供商。
提供访问Internet 服务的公司) 或您的本地网络管理员联系。
》检查您的防火墙设置1、转到MSN Web Messenger 网站。
2、单击“启动MSN Web Messenger”并尝试重新登录。
如果您可以登录到MSN Web Messenger,但Windows Live Messenger 仍然无法访问Internet,则防火墙可能阻止了Windows Live Messenger。
mcisendstring用法seek -回复
mcisendstring用法seek -回复mcisendstring是Windows操作系统提供的一个功能强大的函数,用于发送命令字符串到指定的设备。
在本文中,我们将详细讨论mcisendstring 函数的用法,并提供一步一步的指导来解释如何使用该函数。
首先,让我们先了解一下mcisendstring函数的基本概念和用途。
该函数是多媒体控制接口(MCI)的一部分,用于控制多媒体设备(如音频和视频设备)。
通过发送命令字符串到指定的设备,我们可以实现对设备的控制和操作。
接下来,我们将详细介绍mcisendstring函数的语法和参数。
mcisendstring函数的完整语法如下:c++MCIERROR mciSendString(LPCTSTR lpszCommand,LPTSTR lpszReturnString,UINT cchReturn,HANDLE hWndCallback);参数说明如下:- lpszCommand:命令字符串,用于指定需要执行的设备控制命令。
- lpszReturnString:用于接收函数执行结果的字符串缓冲区。
- cchReturn:接收缓冲区的大小,以字符数量为单位。
如果lpszReturnString的大小超出了cchReturn的值,则函数会截断字符串。
- hWndCallback:回调窗口的句柄。
该参数通常设置为NULL,以使用默认的回调机制。
在使用mcisendstring函数之前,我们需要了解将要发送的命令字符串的语法。
命令字符串通常由命令关键字和参数组成,它们之间以空格分隔。
下面是一个示例命令字符串:c++"open C:\music\song.mp3"上述命令字符串包含了一个命令关键字“open”和一个参数“C:\music\song.mp3”。
该命令的作用是打开一个名为“song.mp3”的音乐文件。
在准备好命令字符串后,我们可以开始使用mcisendstring函数来实现相应的设备控制。
Mcisendstring详解
mciSendString详解mciSendString的常用命令Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _ (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long mciSendString是用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3,等等,下面介绍一下它的使用方法:该函数有四个参数:第一个参数:要发送的命令字符串。
字符串结构是:[命令][设备别名][命令参数].第二个参数:返回信息的缓冲区,为一指定了大小的字符串变量.第三个参数:缓冲区的大小,就是字符变量的长度.第四个参数:回调方式,一般设为零返回值:函数执行成功返回零,否则返回错误代码一、常用命令1.打开:Dim mName as stringmName = "f:\\mpeg\\mpeg1.avi"mciSendString "open mName type MPEGVideo Alias movie parent %u Style %u notify",0&, 0, 0其中:open 操作命令mName 全路径文件名type MPEGVideo 是指打开MPEG,AVI等类型,如果不加这一句,就是打开WAV,MP3等Alias movie 定义了该操作的别名为movie,后续操作只要指明别名即可parent %u 源Style %u 风格、样式notify 通知2.播放:mciSendString "play movie", 0&, 0, 0mciSendString "play movie fullscreen", 0&, 0, 0 '全屏播放3.暂停:mciSendString "pause movie", 0&, 0, 04.继续:mciSendString "resume movie", 0&, 0, 05.停止:mciSendString "stop movie", 0&, 0, 06.关闭:mciSendString "close movie", 0&, 0, 07.前进到下一个位置:mciSendString "step movie", 0&, 0, 08.后退到上一个位置:mciSendString "step movie reverse", 0&, 0, 09.前进或后退N 個位置(其中N<0 即表示后退) mciSendString "step movie by " & str(N), 0&, 0, 010.获取当前播放位置:Dim ST As String*64mciSendString "status movie position", st, len(st), 011. 获取媒体的总长度:mciSendString "status movie length", st, len(st), 0l=val(st) 'L就是所播放文件的长度12.获取播放信息:Dim ST As String*64mciSendString "status movie mode", ST, Len(ST), 0If Left(ST, 7) = "stopped" Then (处理代码) '播放完毕13.循环播放:mciSendString "play movie repeat", 0&, 0, 0二、控制声音大小:Dim V As LongmciSendString "status movie volume", V, 0, 0 'V是获取的音量大小值。