2017-10-11 29 views
0

發揮我在做一個REST調用它會給我作爲audio/mpeg內容類型的wav響應,像如何.WAV響應轉換到BLOB URL,這樣我可以爲音頻在客戶端使用javascript

ID3.O��^H��B��F�����^H��B��F��� 

我想在我的客戶端播放此音頻。所以我想爲此創建一個blob網址。

$.ajax({ 
     url: 'texttospeechnew2?text='+text+'&voice=en-US_AllisonVoice&download=true&accept=audio%2Fmp3', 
     type: 'GET', 
     //data: params, 
     success: function(data) { 

      responsefile = data; 
      var byteArray = new Uint8Array(responsefile); 
      var blob = new Blob(byteArray, { type: "audio/mpeg3" }); 
      const url = window.URL.createObjectURL(blob); 

      console.log(url); 


     }, 
     error: function(data, err) { 
      console.log("err"); 
     } 

    }); 

它給我blob url但沒有正確的格式無法播放that.can某人的幫助。 感謝

回答

0

你必須使用XMLHttpRequest

xhr = new XMLHttpRequest(); 
xhr.open('GET', 'texttospeechnew2?text='+text+'&voice=en-US_AllisonVoice&download=true&accept=audio%2Fmp3', true); 
xhr.responseType = 'blob'; 

xhr.onload = function(e) { 
    if (this.status == 200) { 
    const url = window.URL.createObjectURL(this.response); 
    console.log(url); 
    } 
}; 

xhr.send(); 
+0

嗨,你好,我用盡它給了我一滴網址,但不能播放音頻...在console.When給予以下錯誤我打開bloburl 失敗加載資源:服務器響應的狀態爲416(請求的範圍不可滿足) – hammy

+0

Hello.It現在工作,實際上我們提到響應類型爲blob,因此再次創建字節數組並將其轉換爲blob並不是必需的 – hammy

+0

即使這不是需要 var blob = new Blob(this.response,{t ype:「audio/mpeg3」}); – hammy

相關問題