Audio 服务器上存储的.wav声音文件在加载到web应用程序时不播放

Audio 服务器上存储的.wav声音文件在加载到web应用程序时不播放,audio,media,wav,Audio,Media,Wav,这就是我试图实现的场景:当客户端满足条件时,与web应用程序存储在同一服务器上的声音就会播放。当我在IDE中运行它并将webconfig更改为指向数据库所在的服务器时,它工作得非常好。但是,当我部署它并通过浏览器访问它时,声音不会播放。与我使用开发机器时播放的声音相同。代码是: var configsetings = new System.Configuration.AppSettingsReader(); string soundPath= configsetings.GetValue("

这就是我试图实现的场景:当客户端满足条件时,与web应用程序存储在同一服务器上的声音就会播放。当我在IDE中运行它并将webconfig更改为指向数据库所在的服务器时,它工作得非常好。但是,当我部署它并通过浏览器访问它时,声音不会播放。与我使用开发机器时播放的声音相同。代码是:

 var configsetings = new System.Configuration.AppSettingsReader();
 string soundPath= configsetings.GetValue("Notification",typeof(System.String)).ToString();
 var sound = new System.Media.SoundPlayer { SoundLocation = Server.MapPath(soundPath) };
 sound.Load();
 sound.Play();
web配置为:

<add key="Notification" value="~/beep-4.wav" />


声音文件位于ASP.NET web应用程序的根文件夹中。那么有什么不对呢?服务器上没有音频输出设备,也没有类似于媒体播放器的播放器,但是这些因素并没有阻止它在我的开发机器中工作。

查看您发布的代码,我假设您是用C编写的

因此,此代码将在服务器端运行,而客户端(web浏览器)永远不会知道它或您的音频文件。请阅读asp.net代码及其工作原理。如果要在浏览器(客户端)中播放音频文件,则需要使用、或flash或


通过在服务器上安装声卡,您只能实现(在最佳情况下)在该服务器上播放文件。

谢谢yms,标签起作用了。我放了一个例程,在运行时将标记的HTML写入div,并将其放入计时器中

sounddiv.InnerHtml = "<audio preload=\"auto\" autoplay=\"autoplay\">" +
            "<source src=\"" + soundPath + "\" type=\"audio/wav\" />" +
            " Your browser does not support the audio tag. </audio>";
sounddiv.InnerHtml=“”+
"" +
“您的浏览器不支持音频标记。”;
此代码在计时器中的代码隐藏中调用,以响应该条件。
所以声音每30秒重复一次。问题解决了。感谢大家提供的线索。

Thank@yms刚刚检查并发现mime type.wav已经在功能列表中。还有什么我可以查的吗?哇,我明白了!在这种情况下,如果满足某个条件,声音就会播放,并且在服务器端检查该条件,因为它从DB读取数据进行检查。这就是为什么我把它放在服务器端。我想我必须找到一个实现,可以触发客户端浏览器上的嵌入式声音,直到它被触发才播放!感谢您的帮助,尽管我不介意更多[Oliver Twist like me:)]您可以随时使用aspx网页或Web服务来验证您需要在服务器上检查的条件,并使用javascript(可能使用ajax?)或Flash访问此网页或Web服务。我第一次没有正确阅读您的问题。如果播放机上没有音频输出设备,您希望如何播放该文件?我希望您不要期望在客户机上听到它……事实上我是这样做的,因为它就像我在同一台服务器上运行VS2010项目时解释的那样工作,并且使用相同的web配置文件,没有任何更改。服务器应该只存储在客户端上播放的声音文件。因此,我想知道为什么它不能播放。您编写的代码在服务器上运行,而不是在客户端上运行,因此,您尝试在服务器上播放音频文件,而不使用声卡。这是行不通的。祝你好运。这意味着我必须在服务器和客户端上安装声卡,对吗?或者客户端的用户是如何听到声音的?请向我解释一下这方面的动态。再次感谢@yms