如何在asp.net网页中播放声音?

Had*_*ati 7 c# asp.net

我点击按钮后想在网页上播放一些声音.这是我的代码,但它显示错误.

SoundPlayer x = new SoundPlayer();
x.SoundLocation = "WindowsBalloon.wav";
//x.Play();
x.PlaySync();
Run Code Online (Sandbox Code Playgroud)

错误:

请确保指定位置存在声音文件.

但该文件存在于我的项目中,我确信该地址是正确的.

Har*_*aid 11

您无法使用System.Media.Soundplayer类在网页上播放文件!

原因

它将在服务器端而非客户端播放声音.

如下面链接所述
- Web主机上的C#System.Media.SoundPlayer类问题
- 自动播放声音的最"兼容"方式是什么?

  • 使用ASP.NET音频控件.
  • 其他SO回答同样的要求.
  • 使用任何其他基于Flash或Silverlight的插件.
  • 使用html embed标签或html5音频标签.在w3schools上可以看到例子

基于Html5的音频解决方案(仅适用于现代浏览器)

  • <embed>tag:<embed>标记定义外部(非HTML)内容的容器.(这是一个HTML5标记,在HTML 4中无效,但适用于所有浏览器).
<embed height="100" width="100" src="horse.mp3" />
Run Code Online (Sandbox Code Playgroud)
  • <object>tag:<object>标签还可以为外部(非HTML)内容定义容器.
<object height="100" width="100" data="horse.mp3"></object>
Run Code Online (Sandbox Code Playgroud)
  • <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>
Run Code Online (Sandbox Code Playgroud)

请注意基于html5的解决方案的问题,您必须将视频转换为不同的格式.
- 该<audio>元素未验证为HTML 4和XHTML.
- 该<embed>元素未验证为HTML 4和XHTML.
- <embed>元素不能"后退"以显示错误.


ada*_*ost 5

你需要使用<object><embed>html标签.

<object data="WindowsBalloon.wav"></object>
Run Code Online (Sandbox Code Playgroud)

或者HTML5 标签

<audio src="WindowsBalloon.wav">
  <p>Your browser does not support the audio element.</p>
</audio>
Run Code Online (Sandbox Code Playgroud)