LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#实现通过winmm.dll控制声音播放的方法

admin
2021年2月1日 10:39 本文热度 3350

本文以实例介绍了C#如何通过winmm.dll来播放声音,主要实现步骤如下:

1.首先导入如下两个函数:

/// 向媒体控制接口发送控制命令

/// 命令,参见 http://msdn.microsoft.com/en-us/library/windows/desktop/dd743572(v=vs.85).aspx 

/// 命令返回的信息,如果没有需要返回的信息可以为null

/// 指定返回信息的字符串大小

/// 回调句柄,如果命令参数中没有指定notify标识,可以为new IntPtr(0)

/// 返回命令执行状态的错误代码

[DllImport("winmm.dll")]

static extern Int32 mciSendString(string lpszCommand, StringBuilder returnString, int bufferSize, IntPtr hwndCallback);

/// 返回对执行状态错误代码的描述 

/// mciSendCommand或者mciSendString返回的错误代码

/// 对错误代码的描述字符串

/// 指定字符串的大小

/// 如果ERROR Code未知,返回false

[DllImport("winmm.dll")]

static extern bool mciGetErrorString(Int32 errorCode, StringBuilder errorText, Int32 errorTextSize);


2.示例代码如下:

int error = mciSendString("open C:\\Users\\Angel\\Desktop\\123.wav alias myDivece", null, 0, new IntPtr(0));
if (error == 0)
{
mciSendString("play myDivece", null, 0, new IntPtr(0)); //播放
}
else
{
StringBuilder errorText = new StringBuilder();
mciGetErrorString(error, errorText, 50);
MessageBox.Show(errorText.ToString());
}


3.可以通过以下语句进行播放控制:

mciSendString("play myDivece", null, 0, new IntPtr(0)); //播放
mciSendString("pause myDivece", null, 0, new IntPtr(0)); //暂停
mciSendString("stop myDivece", null, 0, new IntPtr(0)); //停止
mciSendString("close myDivece", null, 0, new IntPtr(0)); //关闭


感兴趣的读者可以动手测试一下本文实例,相信会对大家的C#程序设计起到一定的借鉴与帮助作用。


该文章在 2021/2/1 10:42:39 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved