【问题标题】:How to play .wav files on IE?如何在 IE 上播放 .wav 文件?
【发布时间】:2017-01-14 05:04:01
【问题描述】:

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

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

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

在 Chrome、firefox、safari 上运行良好。

但在 IE 上,我收到错误消息。

  1. 如果我尝试

    <audio controls>
       <source src="example.wav">
    </audio>
    

错误 - 在音频标签中显示无效来源。但没有控制台错误。

  1. 如果我尝试

    <audio controls src="example.wav"></audio>
    

错误 - 它显示在音频标签中

来源无效

也在浏览器控制台中显示

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

【问题讨论】:

  • 哪个版本的IE?
  • 你看过supported media formats页面了吗?
  • 我需要支持IE9+
  • 有什么插件可以支持IE上的wav文件吗?音频标签的任何替代方法?

标签: javascript angularjs html internet-explorer audio


【解决方案1】:

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

我想出了一个 Javascript 函数来处理这个问题;我在&lt;a&gt; 中包含了对触发音频播放的函数的调用;这样,该函数会触发,但在非 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 保留在页面上,并且每次点击都稳定地成为回声。我确信有一个合乎逻辑的解释,但是……我很着急。

【讨论】:

  • 你能为此创建sn-p吗?我无法完成这项工作。
【解决方案2】:

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

这适用于我正在开发的网站的音频元素。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 2016-03-26
    • 2010-09-19
    • 2013-07-13
    • 1970-01-01
    相关资源
    最近更新 更多