我正在尝试在网页上播放mp3声音,声音以mp3格式存储在SQL数据库中,因此通过Service方法返回为byte []。
我的问题是在Chrome中这个工作正常,但是在IE中它没有,只要我开始使用ASPX URL作为源,然后就是播放声音。我也尝试过一点成功但不是动态URL。我错过了一些明显的东西,或者这只是IE很难。在调试时我发现IE甚至没有尝试调用这个URL,因为它决定它不喜欢URL。任何帮助非常感谢。
<audio><source>
方法方法i。 (在IE中不起作用)
<audio controls="controls" >
<source src="PlayAudio.aspx?AudioId=AUDIO00253" />
Sound Not Supported
</audio>
方法ii。 (在IE中不起作用)
<audio controls="controls" >
<source src="Cyclone.mp3" />
Sound Not Supported
</audio>
<embed>
方法方法i。 (在IE中不起作用)
<embed src="PlayAudio.aspx?AudioId=AUDIO00253" autostart="true" ></embed>
方法ii。 (在IE中工作)
<embed src="Cyclone.mp3" autostart="true"></embed>
所有这四种方法在Chrome中运行良好
用于提供mp3字节流的ASPX方法,我知道这在Chrome中可以正常工作。
private void SendAudio( byte[] audio )
{
// Stream byte array to memory stream
var memStream = new MemoryStream( audio );
// Write memory stream to response
Response.ContentType = "audio/mpeg";
memStream.WriteTo( Response.OutputStream );
memStream.Close();
}
答案 0 :(得分:0)
首先<audio>
&amp; <source>
标签是HTML 5中的新标签,IE不支持这些标签,因此它们无法在Internet Explorer中运行(它们应该可以在FireFox 4 +,Chrome 3 +,Safari 4 +,Opera 9+以及其他任何设备上正常使用HTML 5启用了浏览器。)
第二,你的代码对你的方法是正确的,但我过去遇到了一些问题。我相信<embed>
标签的src属性需要一个实际的声音文件而不是一个要执行的脚本。
目前浏览器正在尝试播放您无法播放的脚本。由于您的声音数据存储在数据库中,因此在包含<embed>
标记的页面上,您需要创建一个临时文件来写入数据,然后在<embed>
标记中调用该临时文件。
我不是ASPX的专业人士,但我会尝试为你调查。
干杯:)
答案 1 :(得分:0)
我被困了一会儿。在这里,嵌入也不适用于IE上的 .aspx 或 .ashx 文件,但它确实适用于经典的.asp 。可能在扩展上有某种验证。您可以将.asp文件添加到现代asp.net visual studio项目中。