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

标签 javascript angularjs html internet-explorer audio

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

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

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

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

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

  1. 如果我尝试

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

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

  • 如果我尝试

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

    Invalid source

    也在浏览器控制台中显示

    MEDIA12899: AUDIO/VIDEO: Unknown MIME type.

    最佳答案

    我遇到了同样的问题,这是由于 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,并且每次点击它都会稳定地变成回声。我确信有一个合乎逻辑的解释,但是......我很着急。

    关于javascript - 如何在 IE 上播放 .wav 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39354085/

    相关文章:

    AngularJs - ng 使用返回新对象的过滤器重复

    javascript - 选择元素AngularJS的默认值

    javascript - 如何断开 JavaScript 弹出窗口与开启器的连接

    javascript - 将 JavaScript 数据放入 HTML 表格单元格中

    javascript - 如何用 javascript 完全替换页面或其标题的 CSS 样式?

    javascript - 浏览器从 Webpack 加载旧的 bundle.js

    javascript - 当 dataType 设置为 JSONP 时读取 JSON 响应

    javascript - 在 chrome 扩展的事件页面中设置值事件输入

    javascript - 如何测试包裹在另一个连接组件中的连接组件?

    javascript - 如何对 Bootstrap 卡进行分页