簡體   English   中英

如何使用C#在ASP.NET背后的代碼中訪問HTML5音頻play()事件

[英]How to access html5 audio play() event in codebehind asp.net with c#

我在中繼器中有一個html5音頻標簽。 當用戶單擊按鈕時,我想在代碼背后觸發play()事件。 我可以找到音頻並提供src,但不能觸發play()。 Ps:自動播放僅工作一次,而另一個音頻不工作。 我的代碼是:

中繼器中的aspx

<audio id="player2" runat="server" src="" type="audio/mp3" 
controls="controls" preload="none" autoplay="autoplay">

代碼隱藏

        HtmlAudio audio = (HtmlAudio)e.Item.FindControl("player2");
         switch (e.CommandName)
        {
            case "play":

                audio.Src = dt.Rows[0]["AudioPath"].ToString();                    
                **audio play() ?**                   
                break;             

        }

自然,對於其他音頻,它將不起作用。 它僅適用於第一個。 因為您給了所有人相同的ID。 ID也應該是動態的,具體取決於您的音頻。 例如,您可以從數據庫<%#Eval(“ id”)%>加載它。 您具有一些控件,單擊該控件時必須播放音頻。 如果您將在鏈接上執行此操作會更好。 例如,

<a href="javascript:PlayAudio(<%#Eval("id") %>)">
     <img src="...." width=".." height=".." />
</a>

然后寫javascript函數:

PlayAudio(id){
   document.getElementById('audio'+id).setAttribute("autoplay", "autoplay");
}

希望能幫助到你

嘗試這個:

在ASPX頁面中:

 <asp:Label runat="server" ID="lbl_sound" Visible="false"/>

在后面的代碼中:

//clear label on load page , and set value in your event
public void goSound()
{
  lbl_sound.Text="<div><audio autoplay hidden><source src='Sound/myaudio.wav' type='audio/mpeg'></audio></div>"
}

它對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM