Mam audio znacznik html5 w repeater. Kiedy użytkownik kliknie przycisk Chcę uruchomić zdarzenie play () w codebehind. Mogę znaleźć audio i dać src, ale nie mogę uruchomić play (). Ps: Autoodtwarzanie działa tylko raz, ponieważ inny dźwięk nie działa. Moje kody to:
aspx w repeateru
<audio id="player2" runat="server" src="" type="audio/mp3"
controls="controls" preload="none" autoplay="autoplay">
Codebehind
HtmlAudio audio = (HtmlAudio)e.Item.FindControl("player2");
switch (e.CommandName)
{
case "play":
audio.Src = dt.Rows[0]["AudioPath"].ToString();
**audio play() ?**
break;
}
Odpowiedzi:
0 dla odpowiedzi № 1Oczywiście dla innego dźwięku nie będzie działać. Będzie działać tylko dla pierwszego. Ponieważ dałeś im te same identyfikatory. Identyfikator również powinien być dynamiczny, w zależności od dźwięku. Na przykład możesz załadować go z bazy danych: <% # Eval ("id")%>. Masz pewną kontrolę, gdy klikniesz na kontrolne audio, które chcesz odtworzyć. Byłoby lepiej, gdybyś zrobił to za pomocą linka. Na przykład,
<a href="javascript:PlayAudio(<%#Eval("id") %>)">
<img src="/images/...." width=".." height=".." />
</a>
A następnie wpisz funkcję javascript:
PlayAudio(id){
document.getElementById("audio"+id).setAttribute("autoplay", "autoplay");
}
Mam nadzieję, że to pomoże