加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

从Windows服务播放wave文件(C#)

发布时间:2020-12-13 22:36:17 所属栏目:Windows 来源:网络整理
导读:我需要从作为 Windows服务运行的C#应用??程序中播放wav文件.我已经尝试了System.Media.SoundPlayer和对WinMM.dll的P / Invoke调用(这可能是SoundPlayer正在做的事情). [DllImport("WinMM.dll")]private static extern bool PlaySound(string fname,int Mod,i
我需要从作为 Windows服务运行的C#应用??程序中播放wav文件.我已经尝试了System.Media.SoundPlayer和对WinMM.dll的P / Invoke调用(这可能是SoundPlayer正在做的事情).

[DllImport("WinMM.dll")]
private static extern bool PlaySound(string fname,int Mod,int flag);

如果我将我的代码作为控制台应用程序运行,则声音会播放.当我从服务运行它,没有运气,我想我并不感到惊讶.

那么有没有办法从Windows服务播放声音? DirectSound会有帮助吗?或者我是否会被困在编写控制台应用程序并让Windows服务应用程序与它作为中介进行通信?

提前致谢

解决方法

从服务播放wav文件绝对是可能的,至少在Windows 7(很可能是Vista)上,通过使用Windows Core Audio API.我最近通过使用 NAudio进行小型测试服务来验证这一点.我刚刚下载了NAudio源并从他们的NAudioDemo项目中复制了“Wsapi”部分.这是在Windows 7企业版64位上,但我认为不重要.该服务使用的是LocalSystem帐户. 为了记录,在嵌入式设置中播放来自服务的声音是完全合法的事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读