2016-09-06 94 views
0

我正在開發一個html5 - angularjs應用程序。如何在IE上播放.wav文件?

我需要播放從UI上的服務器獲取的.wav文件。

需要在所有瀏覽器上支持此功能。

它與Chrome,Firefox,safari正常工作。

但在IE上,我收到錯誤。

  1. 如果我嘗試

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

錯誤 - 在音頻標籤會顯示無效的來源。但沒有控制檯錯誤。

  • 如果我嘗試

    <audio controls src="example.wav"></audio> 
    
  • 錯誤 - 在音頻標籤它顯示

    無效源

    同樣在瀏覽器控制檯,它顯示

    MEDIA12899:AUDIO/VIDEO:未知的MIME類型。

    +0

    哪個版本的IE? –

    +0

    您有沒有看過[支持的媒體格式](https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats)頁面? –

    +0

    我需要支持IE9 + –

    回答

    0

    我遇到了同樣的問題,這是由於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留在頁面上,它每次點擊都穩步成爲回聲。我確定有一個合理的解釋,但是......我很匆忙。