如何.WAV响应转换到BLOB URL,这样我可以为音频在客户端使用javascript

如何.WAV响应转换到BLOB URL,这样我可以为音频在客户端使用javascript

问题描述:

发挥我在做一个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某人的帮助。 感谢

你必须使用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