使用 PlaySound 在移动Win CE 设备上播放声音文件。

使用 PlaySound 在移动设备上播放声音文件。此代码使用 System.Runtime.InteropServices 调用 Compact Framework 的 CoreDll.DLL 的 PlaySound 方法

 

关于播放实现

 

        //播放标志

        private enum Flags

        {

            SND_SYNC = 0x0000,

            SND_ASYNC = 0x0001,

            SND_NODEFAULT = 0x0002,

            SND_MEMORY = 0x0004,

            SND_LOOP = 0x0008,

            SND_NOSTOP = 0x0010,

            SND_NOWAIT = 0x00002000,

            SND_ALIAS = 0x00010000,

            SND_ALIAS_ID = 0x00110000,

            SND_FILENAME = 0x00020000,

            SND_RESOURCE = 0x00040004

        }

 

        [DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]

        private extern static int MobilePlaySound(string szSound, IntPtr hMod, int flags);

        public void PlaySound(string fileName)

        {

            MobilePlaySound(fileName, IntPtr.Zero, (int)(Flags.SND_ASYNC | Flags.SND_FILENAME));

        }

 

关于停止实现:

 

PlaySound(null);

 

关于PlaySound函数:

 

一.PlaySound函数的声明为:

BOOL PlaySound(LPCSTR pszSound,HMODULE hmod,DWORD fdwSound);

1.参数pszSound:是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAVE资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音.如果该参数为NULL则停止正在播放的声音.

2.参数hmod:是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL.

3.参数fdwSound: 是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
二.播放标志以及含义:

SND_APPLICATION
 用应用程序指定的关联来播放声音。

SND_ALIAS
 pszSound参数指定了注册表或WIN.INI中的系统事件的别名。

SND_ALIAS_ID
 pszSound参数指定了预定义的声音标识符。

SND_ASYNC
 用异步方式播放声音,PlaySound函数在开始播放后立即返回。

SND_FILENAME
 pszSound参数指定了WAVE文件名。

SND_LOOP
 重复播放声音,必须与SND_ASYNC标志一块使用。

SND_MEMORY
 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。

SND_NODEFAULT
 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。

SND_NOSTOP
 PlaySound不打断原来的声音播出并立即返回FALSE。

SND_NOWAIT
 如果驱动程序正忙则函数就不播放声音并立即返回。
SND_PURGE
 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
SND_RESOURCE
 pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
SND_SYNC
 同步播放声音,在播放完后PlaySound函数才返回。

 

 

不足:

 

暂停没有实现,还在探索中。


 

参考:http://www.cnblogs.com/wangliang651/archive/2006/09/25/514229.html

         MSDN帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值