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

时间:2012-03-27 10:53:25

标签: audio media wav

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

 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();

网络配置是:

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

谢谢你,这个标签很有用。我把一个例程在运行时将标记的HTML写入div并将其放入计时器中。

sounddiv.InnerHtml = "<audio preload=\"auto\" autoplay=\"autoplay\">" +
            "<source src=\"" + soundPath + "\" type=\"audio/wav\" />" +
            " Your browser does not support the audio tag. </audio>";

响应条件,在定时器后面的代码中调用此代码。 所以声音每30秒重复一次。问题解决了。谢谢各位领导。