这就是我试图实现的场景:存储在与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();web配置为:
<add key="Notification" value="~/beep-4.wav" />声音文件位于ASP.NET web应用程序的根文件夹中。那么,可能出了什么问题呢?服务器上没有音频输出设备,也没有像媒体播放器这样的播放器,然而这些因素并没有阻止它在我的开发机器上工作。
发布于 2012-03-28 01:52:19
看一下你发布的代码,我会假设你是用C#写的。
因此,这段代码将在服务器端运行,而客户端( web浏览器)永远不会知道它或您的音频文件。请阅读有关asp.net代码隐藏及其工作原理的信息。如果要在浏览器(客户端)中播放音频文件,则需要使用javascript、flash或< audio > tag from html5。
通过在服务器上安装声卡,您只能实现(在最好的情况下)在该服务器上播放文件。
发布于 2012-03-31 00:58:42
感谢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>";此代码在定时器中的代码后台中调用,以响应条件。所以声音每30秒重复一次。问题解决了。谢谢你们提供的线索。
https://stackoverflow.com/questions/9888181
复制相似问题