<audio> <source />和<embed />链接在IE中无法使用动态ASPX源</audio>

时间:2012-08-20 22:38:05

标签: asp.net internet-explorer audio embed

我正在尝试在网页上播放mp3声音,声音以mp3格式存储在SQL数据库中,因此通过Service方法返回为byte []。

我的问题是在Chrome中这个工作正常,但是在IE中它没有,只要我开始使用ASPX URL作为源,然后就是播放声音。我也尝试过一点成功但不是动态URL。我错过了一些明显的东西,或者这只是IE很难。在调试时我发现IE甚至没有尝试调用这个URL,因为它决定它不喜欢URL。任何帮助非常感谢。

  1. <audio><source>方法
  2. 方法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>
    
    1. <embed>方法
    2. 方法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();
        }
      

2 个答案:

答案 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项目中。