using System;
using System.Collections;
using System.ComponentModel;
using System.Runtime.InteropServices;namespace PlaySound
{
internal class Helpers
{
[Flags]
public enum PlaySoundFlags : int
{
SND_SYNC = 0x0000, /* play synchronously (default) */ //同步
SND_ASYNC = 0x0001, /* play asynchronously */ //异步
SND_NODEFAULT = 0x0002, /* silence (!default) if sound not found */
SND_MEMORY = 0x0004, /* pszSound points to a memory file */
SND_LOOP = 0x0008, /* loop the sound until next sndPlaySound */
SND_NOSTOP = 0x0010, /* don't stop any currently playing sound */
SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
SND_ALIAS = 0x00010000, /* name is a registry alias */
SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
SND_FILENAME = 0x00020000, /* name is file name */
SND_RESOURCE = 0x00040004 /* name is resource name or atom */
} [DllImport("Winmm")]
public static extern bool PlaySound(string szSound, IntPtr hMod, PlaySoundFlags flags);
} public class Sound
{
//播放
public static void Play(string strFileName)
{
Helpers.PlaySound(strFileName, IntPtr.Zero, Helpers.PlaySoundFlags.SND_ASYNC);
} //关闭
public static void Stop()
{
Helpers.PlaySound(null, IntPtr.Zero, Helpers.PlaySoundFlags.SND_ASYNC);
}
}
}
调用Play()方法以后不能播放声音,只听见"当"的一声
解决方案 »
- string怎么以子字符串来分割
- C#调用C++dll
- 各位兄弟现在都在用什么聊天工具阿???
- 我刚入公司,有些初级问题急等解决,得到正解立即结贴
- 在web form textbox中如何实现象点击浏览器地址栏后原来地址被全部青色覆盖?在线等,谢谢!
- 请问大家C#里怎么将字符串转换成二进制类型
- VS2005 中串口类 (System.IO.Ports.SerialPort) 包装中的问题 ,数据到达事件如何处理,大家进来看下
- 如何对一个部门表实现一个树形结构,并转化成Json
- Clipboard_数据粘贴_乱码
- 用过Magic Library的请问怎么让新增的docking窗口直接和原来已有的形成tab样式,而不是在旁边新开,需要手工拖成tab样
- 关于字符串处理的问题
- 一个算法问题
其次嘛...你还没理解他第三个参数的意义,你得给他加上个SND_FILENAME 告诉API你的第一个参数是个文件名~
就像这样
那应该怎么写
位于 E:\music\Angel.mp3 的文件不是一个有效的波形文件。