最近做个程序,要求数据库取出的值满足某个条件时,
客户端的网页会播放声音,
并且这个网页是时时刷新的,
如果满足这个条件会一直出声音报警。但是我用
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.   

    我刚才基于楼主的思路2试了一下,觉得循环播放声音是可以的啊 
    思路基本差不多,如下:
    1.在前台html文件中,增加
      <BGSOUND  id="sound"  src=""  runat="server" loop ="-1"/> 
      其中loop属性用来控制播放次数,也可以通过后代代码或前台js控制,值意义:
      -1  表示无限循环播放
      >0: 表示相应的重播次数
    --当然此段代码也可以在后台动态生成;
    2.在*.cs文件中,如条件满足,则
      this.sound.Attributes["src"] = "声音文件路径";
     若要停止播放,则可以
     this.sound.Attributes["src"] = ""; ///停止声音播放但上述实现方法有一个地方要注意,当浏览器窗口最小化后声音文件播放回暂停,当重新恢复或最大化后声音文件继续播放
      

  2.   

    给你个思路
    你在页面上放个播放器
    代码如下:<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><!--播放器-->把他隐藏
    然后根据条件给他值
      

  3.   

    SoundPlayer player = new SoundPlayer();
                            HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(@"播放文件的网站地址");
                            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                            Stream receiveStream = myHttpWebResponse.GetResponseStream();
                            player.Stream = receiveStream;
                            player.Play();
                            myHttpWebResponse.Close();
                            receiveStream.Close();