首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么让声音停止

2012-01-23 
如何让声音停止我做了一个播放声音的程序如下:conststringFILE_NAMEc:\\ProgramFiles\\1.wav internal

如何让声音停止
我做了一个播放声音的程序如下:

const   string   FILE_NAME   =   "c:\\Program   Files\\1.wav ";

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_FILENAME   |   Helpers.PlaySoundFlags.SND_ASYNC   );
}
}

Sound.Play(FILE_NAME);

但是如何让声音停止啊,请各位前辈指点^_^


[解决办法]
Helpers.PlaySound( strFileName, IntPtr.Zero, Helpers.PlaySoundFlags.SND_FILENAME | Helpers.PlaySoundFlags.SND_ASYNC );

===>

Helpers.PlaySound( strFileName, IntPtr.Zero, Helpers.PlaySoundFlags.SND_FILENAME | Helpers.PlaySoundFlags.SND_LOOP | Helpers.PlaySoundFlags.SND_SYNC );

[解决办法]
1.关闭音响。
2.关闭耳朵。
3.试试下面的代码:

//Play
Helpers.PlaySound(strFileName, IntPtr.Zero, Helpers.PlaySoundFlags.SND_FILENAME | Helpers.PlaySoundFlags.SND_ASYNC | Helpers.PlaySoundFlags.SND_NODEFAULT | Helpers.PlaySoundFlags.SND_LOOP);

//Stop
Helpers.PlaySound( " ", IntPtr.Zero, Helpers.PlaySoundFlags.SND_PURGE || Helpers.PlaySoundFlags.SND_NODEFAULT);

热点排行