在Visual Studio的ASP.NET中,我想播放音频以响应定时器的滴答句柄方法,如下面的代码所示。
int i = 0;
protected void Timer1_Tick(object sender, EventArgs e)
{
i = (int)ViewState["i"];
PlayArpeggio(i);
i++;
ViewState["i"] = i;
}
private void PlayArpeggio(int i)
{
if (i == 3)
{
ClientScriptManager clientScriptManager = Page.ClientScript;
StringBuilder sb = new StringBuilder();
sb.Append("<script language='Javascript'>");
sb.Append("function PlayArpeggioTwo() {");
sb.Append("document.getElementById('arpeggioTwo').play();");
sb.Append("}");
sb.Append("PlayArpeggioTwo();");
sb.Append("<");
sb.Append("/script>");
if(!clientScriptManager.IsClientScriptBlockRegistered("JackpotSound"))
{
clientScriptManager.RegisterClientScriptBlock(this.GetType(),"JackpotSound",sb.ToString());
}
}
}
但它不会播放声音。上面的代码适用于我在计时器tick子方法中包含的所有其他内容(基于每次递增&#39; i&#39;)。当然,计时器位于“更新面板”内。我不知道这是否会阻止剧本播放。并且,有没有比这更好的方法呢?
由于 约翰
答案 0 :(得分:0)
我需要JavaScript来播放音频以响应事件背后的代码,例如“asp:button&#39; s&#39;点击事件,以及“asp:timer&#39; s&#39;打勾事件。但是,正如建议所建议的那样,文件或html页面上的JavaScript似乎无法听到(回应)这些代码背后的代码。事件。 JavaScript仅响应页面刷新,而不响应不同的事件本身。因此,我的解决方法是在asp:button的click事件后面注册脚本,并建立一个JavaScript计时器来执行JavaScript代码,所有这些都是在所需的条件下播放音频。
但是,如果我在按钮元素中使用了On Client Click属性,那么这可以解决我的问题。
帮助我解决自己问题的消息来源包括: Register Client Script at Timer's Tick Event Window Clear Timeout Method