C# · 12月 23, 2021

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

我点击按钮后想在网页上播放一些声音.这是我的代码,但它显示错误. SoundPlayer x = new SoundPlayer();x.soundLocation = “WindowsBalloon.wav”;//x.Play();x.PlaySync();

错误:

Please be sure a sound file exists at the specified location.

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

解决方法 您无法使用 System.Media.Soundplayer课程在网页上播放文件!

原因

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

如下面的链接所述
– Problem With The C# System.Media.SoundPlayer Class On A Web Host
– What is the most “compatible” way of autoplaying sound?

>使用ASP.NET audio control.
>其他SO Answer超过同样的要求.
>使用任何其他基于Flash或Silverlight的插件.
>使用html embed标签或html5音频标签.例子可以在w3schools看到

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

>< embed> tag:< embed> tag定义外部(非HTML)内容的容器. (这是一个HTML5标记,在HTML 4中无效,但适用于所有浏览器).

<embed height=”100″ width=”100″ src=”horse.mp3″ />

>< object> tag:< object> tag还可以为外部(非HTML)内容定义容器.

<object height=”100″ width=”100″ data=”horse.mp3″></object>

>< audio> tag:< audio> element是一个HTML5元素,但它适用于所有浏览器.

<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>元素无法“后退”以显示错误.