[英]How do I play a sound in an asp.net web page?
單擊按鈕后,我想在網頁上播放一些聲音。 這是我的代碼,但顯示錯誤。
SoundPlayer x = new SoundPlayer();
x.SoundLocation = "WindowsBalloon.wav";
//x.Play();
x.PlaySync();
錯誤:
請確保在指定位置存在聲音文件。
但是文件存在於我的項目中,並且我確定地址正確。
您不能使用System.Media.Soundplayer類在網頁上播放文件!
它將在服務器端而非客戶端上播放聲音。
如以下鏈接所述
-Web主機上的C#System.Media.SoundPlayer類出現問題
- 自動播放聲音的最“兼容”方式是什么?
<embed>
標記: <embed>
標記定義用於外部(非HTML)內容的容器。 (這是一個HTML5標簽,在HTML 4中無效,但在所有瀏覽器中均有效)。 <embed height="100" width="100" src="horse.mp3" />
<object>
標記: <object>
標記還可以定義用於外部(非HTML)內容的容器。 <object height="100" width="100" data="horse.mp3"></object>
<audio>
標記: <audio>
元素是HTML5元素,在HTML 4中無效,但在所有瀏覽器中均可使用。 <audio controls="controls" height="100" width="100">
<source src="horse.mp3" type="audio/mp3" />
<source src="horse.ogg" type="audio/ogg" />
<embed height="100" width="100" src="horse.mp3" />
</audio>
請注意基於html5的解決方案存在的問題,您必須將視頻轉換為其他格式。
- <audio>
元素未驗證為HTML 4和XHTML。
- <embed>
元素未驗證為HTML 4和XHTML。
- <embed>
元素不能“后退”以顯示錯誤。
您需要使用<object>
或<embed>
html標簽。
<object data="WindowsBalloon.wav"></object>
<audio src="WindowsBalloon.wav">
<p>Your browser does not support the audio element.</p>
</audio>
這就是我想要的:
Server.MapPath(string path);
返回與Web服務器上指定的虛擬路徑相對應的物理文件路徑。
參數:path:Web服務器的虛擬路徑。
返回:對應於路徑的物理文件路徑。
SoundPlayer s = new SoundPlayer();<br>
s.SoundLocation = **Server.MapPath("WindowsBalloon.wav");**<br>
s.PlaySync();
這在HTML5
:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<embed height='0' width='0' src='Sound.wav' />");
}
給定完整路徑,即c:\\wavfiles\\WindowsBalloon.wav
上面的“ wavfiles”是用戶特權文件夾。
use x.PlayLooping()
如果要連續播放聲音文件,此功能
小心!
使用一個按鈕退出循環,否則聲音文件將連續運行。 我建議您退出循環:-
碼
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
x.Stop()
End Sub
如果您需要以編程方式播放ALARM聲音,可以通過以下方式進行:
<asp:Panel runat="server" ID="panBuzz" style="visibility:hidden">
<audio runat="server" id="Buzz" src="http://.....mp3" type="audio/mp3"/>
</asp:Panel>
背后的代碼(Visual Basic):
Dim cBuzz As HtmlControl = DirectCast(panBuzz.FindControl("Buzz"), HtmlControl)
cBuzz.Attributes.Add("autoplay", "autoplay")
(C#)后面的代碼:
HtmlControl cBuzz = (HtmlControl)panBuzz.FindControl("Buzz");
cBuzz.Attributes.Add("autoplay", "autoplay");
嘗試將驅動器號添加到路徑,例如“ C:/WindowsBalloon.wav”。 但這不會在客戶端發揮作用。 我建議在客戶端嘗試HTML5。
SoundPlayer s =新的SoundPlayer();
s.SoundLocation = Server.MapPath(“ WindowsBalloon.wav”);
s.PlaySync();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.