如何在代码中添加<audio>标签到页面内容?

时间:2015-04-24 16:06:05

标签: c# html asp.net htmlcontrols

我想从Client.RegisterClientScriptBlock()中的代码中将此音频html标记添加到页面中。有可能吗?

<audio id="A"></audio>
<script type="text/javascript">
    var player = document.getElementById("A");
    function Alert() {
        player.preload = 'auto';
        player.src = "/Sounds/tada.wav";
        player.play();
    }
</script>

BaseClass的

public class BasePage : System.Web.UI.Page
{

protected override void OnPreRender(EventArgs e)
{
   base.OnPreRender(e);

  //add audio tag 

}

}

Page.aspx

 <asp:Content ID="Content1" ContentPlaceHolderID="MainContent"  runat="server">
 ....
 .....
 ....
</asp:Content>

Page.aspx.cs

public partial class Page: BasePage
{
   protected void Page_Load(object sender, EventArgs e)
    {  }

}

2 个答案:

答案 0 :(得分:3)

<audio>代码?还是<html>代码?

<audio>标记您应该可以添加

var ctrl = new HtmlGenericControl("audio");
myContainer.Add(ctrl);

其中myContainer是模板中的容器(例如div)

对于javascript部分,您需要在javascript中引用音频ctrl的客户端ID。你可以在后端建立你的javascript,或者只是在后端建立一个javascript属性并将其放入模板中。

var scriptText = String.Format("var audioId = {0};", ctrl.ClientId);
ClientScript.RegisterClientScriptBlock(this.GetType(), "MyScript", scriptText, true);

然后在模板中的javascript中

var player = document.getElementById(audioId); 

答案 1 :(得分:0)

您可以使用此

var myAudio = new System.Web.UI.HtmlControls.HtmlAudio();
myAudio.Attributes.Add("autoplay", "autoplay");
myAudio.Attributes.Add("controls", "controls");
myAudio.Src = "test.mp3";
Form.Controls.Add(myAudio);