如何在IE上播放.wav文件?

时间:2016-09-06 16:47:41

标签: javascript angularjs html5 internet-explorer audio

我正在开发一个html5 - angularjs应用程序。

我需要在UI上播放从服务器获取的.wav文件。

所有浏览器都需要支持此功能。

Chrome,firefox,safari正常运行。

但在IE上,我收到了错误。

  1. 如果我尝试

    <audio controls>
       <source src="example.wav">
    </audio>
    
  2. 错误 - 在音频标记中显示无效来源。但没有控制台错误。

    1. 如果我尝试

      <audio controls src="example.wav"></audio>
      
    2. 错误 - 显示音频标签

        

      来源无效

      同样在浏览器控制台中,它会显示

        

      MEDIA12899:音频/视频:未知的MIME类型。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,这是因为IE不支持HTML5中的.wav文件(这没有任何意义,但是,哦,好吧)。

我想出了一个处理这个问题的Javascript函数;我在<a>中调用了触发音频播放功能;通过这种方式,该函数可以触发,但在非IE浏览器中不执行任何操作,但在IE中,它会播放它并在HTML5音频播放器中优雅地失败。

function playWavFileInIE(src){
    if(/msie/i.test(navigator.userAgent) || /trident/i.test(navigator.userAgent)){
        var origPlayer = document.getElementById('currentWavPlayer');
        if(origPlayer){
            origPlayer.src = '';
            origPlayer.outerHtml = '';
            document.body.removeChild(origPlayer);
            delete origPlayer;
        }
        var newPlayer = document.createElement('bgsound');
        newPlayer.setAttribute('id', 'currentWavPlayer');
        newPlayer.setAttribute('src', src);
        document.body.appendChild(newPlayer);
        return false;
    }
}

似乎需要if(origPlayer){...}块中的所有行;没有任何一个,我最终得到了.wav留在页面上,它随着每次点击稳定地变成了回声。我确定这是一个合乎逻辑的解释,但是......我很着急。

答案 1 :(得分:0)

如果有可能,请将服务器上的 .wav 文件转换为 .mp3

这对我正在工作的网站的音频元素很有效。

.MP3文件格式似乎比.WAV格式得到更广泛的支持(请参见下面的链接):

相关问题