Windows 声音处理编程(基于winmm.dll)(2)

这一篇简单介绍winmm.dll中的mciSendString功能,并用此功能开发一个多媒体播放器。

首先在C#中,重写winmm.dll中的mciSendString函数:

//The mciSendString function sends a command string to an MCI device. The device that the command is sent to is specified in the command string.

[DllImport("winmm.dll")]
        static extern Int32 mciSendString(string lpszCommand, string lpszReturnString, int cchReturn, int hwndCallback);

  • Parameters
lpszCommand
Pointer to a null-terminated string that specifies an MCI command string. For a list, see Multimedia Command Strings.
lpszReturnString
Pointer to a buffer that receives return information. If no return information is needed, this parameter can be NULL.
cchReturn
Size, in characters, of the return buffer specified by the lpszReturnString parameter.
hwndCallback
Handle to a callback window if the "notify" flag was specified in the command string.

"MCI command String" 全部信息在这里:http://msdn.microsoft.com/en-us/library/dd743572(v=vs.85).aspx 包括open,play, pause,stop等开发多媒体软件所需要的命令。

举例使用mciSendString的方法:

mciSendString("open " + filePath + " alias device_alias", "", 0, 0); // 这一段代码打开filePath指定的多媒体文件,同时,给当前使用的设备设置了别名device_alias,以方便之后的操作使用。

打开多媒体文件之后,就可以进行其它的操作了。在以下的命令中,命令之后要使用device_alias指定设备,device_alias在open的时候进行的定义。

mciSendString("play device_alias", "", 0, 0); //播放

mciSendString("pause device_alias", "", 0, 0); //暂停

mciSendString("stop device_alias", "", 0, 0); //停止

mciSendString("close device_alias", "", 0, 0); //关闭

通过以上几个简单的命令,就能实现简单的播放器了。

你可能感兴趣的:(C/C++/C#)