最近做个程序,要求数据库取出的值满足某个条件时,
客户端的网页会播放声音,
并且这个网页是时时刷新的,
如果满足这个条件会一直出声音报警。但是我用
1、
Response.Write(@"<bgsound ....
这种形式似乎只能响一次;
2、
html文件中加入:<BGSOUND id="sound" src="yourSound.wav" runat="server" Visible="false"/>
.cs中
if(..)
{
HtmlGenericControl sound;
sound.Visible = true;
}
这个似乎也不按照我的想法能多次调用声音文件。
3、<embed src='test.wav' id="wavTest" hidden="true" autostart="false" type="audio/wav" ></embed>
4、作为ActiveX对象的声音:还有人说这种方法,不是很明白。
ps:我的代码不是写在aspx中,最好写在.cs中的,声音文件放在服务器端,报警声音需要在客户端,谢谢。
有啥思路不妨说说,谢谢啊
客户端的网页会播放声音,
并且这个网页是时时刷新的,
如果满足这个条件会一直出声音报警。但是我用
1、
Response.Write(@"<bgsound ....
这种形式似乎只能响一次;
2、
html文件中加入:<BGSOUND id="sound" src="yourSound.wav" runat="server" Visible="false"/>
.cs中
if(..)
{
HtmlGenericControl sound;
sound.Visible = true;
}
这个似乎也不按照我的想法能多次调用声音文件。
3、<embed src='test.wav' id="wavTest" hidden="true" autostart="false" type="audio/wav" ></embed>
4、作为ActiveX对象的声音:还有人说这种方法,不是很明白。
ps:我的代码不是写在aspx中,最好写在.cs中的,声音文件放在服务器端,报警声音需要在客户端,谢谢。
有啥思路不妨说说,谢谢啊
思路基本差不多,如下:
1.在前台html文件中,增加
<BGSOUND id="sound" src="" runat="server" loop ="-1"/>
其中loop属性用来控制播放次数,也可以通过后代代码或前台js控制,值意义:
-1 表示无限循环播放
>0: 表示相应的重播次数
--当然此段代码也可以在后台动态生成;
2.在*.cs文件中,如条件满足,则
this.sound.Attributes["src"] = "声音文件路径";
若要停止播放,则可以
this.sound.Attributes["src"] = ""; ///停止声音播放但上述实现方法有一个地方要注意,当浏览器窗口最小化后声音文件播放回暂停,当重新恢复或最大化后声音文件继续播放
你在页面上放个播放器
代码如下:<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" id="aboutplayer" width="251" height="62">
<param name="URL" value="<%=strUrlSong %>" />
<param name="FileName" value="<%=strFileList %>" />
<param name="volume" value="100"/>
<param name="autoStart" value="<%=allowAutoplay %>"/>
<param name="playCount" value="100"/>
<param name="enablecontextmenu" value="0"/>
<param name="enableerrordialogs" value="0"/>
</object><!--播放器-->把他隐藏
然后根据条件给他值
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(@"播放文件的网站地址");
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
Stream receiveStream = myHttpWebResponse.GetResponseStream();
player.Stream = receiveStream;
player.Play();
myHttpWebResponse.Close();
receiveStream.Close();