单击按钮后,我想在网页中播放一些声音。这是我的代码,但它显示错误。
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>
tag:该<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>
这适用于HTML5
:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<embed height='0' width='0' src='Sound.wav' />");
}
这就是我认为你想要的:
Server.MapPath(string path);
返回与 Web 服务器上指定的虚拟路径相对应的物理文件路径。
参数: path:Web 服务器的虚拟路径。
返回: path 对应的物理文件路径。
SoundPlayer s = new SoundPlayer();<br>
s.SoundLocation = **Server.MapPath("WindowsBalloon.wav");**<br>
s.PlaySync();
给定完整路径,即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>
背后的代码(视觉基础):
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();