我有一臺服務器將ogg編碼的音頻提供給客戶端,該客戶端使用http GET請求該音頻。 如果我注入了GET路線到它接收到的音頻並在HTML音訊源:播放HTML音頻標記的二進制字符串
function working(text) {
var downloadURL = 'http://localhost:8080/nlc/synthesize' +
'?text=' + encodeURIComponent(text);
audio.pause();
audio.src = downloadURL;
audio.play();
};
如果我使用一個HTTP GET調用(在AngularJS),並嘗試注入的響應到HTML音頻SRC它不會玩:
function not_working(text) {
$http.get('http://localhost:8080/nlc/synthesize' + '?text=' + encodeURIComponent(text)).then(function(response) {
console.log(response);
audio.pause();
audio.src = encodeURIComponent(response);
audio.play();
};
響應的日誌顯示有一個二進制字符串JSON在「數據」鍵:
Object {data: "OggS�1�/ڂ OpusHead��]OggS…�xs���������������������������������", status: 200, config: Object, statusText: "OK"}
有沒有辦法來解碼HTTP GET響應INT o我可以注入音頻src?
我不知道角度,但與XMLHttpRequest,喲你可以將'.responseType'設置爲'「blob」,然後從這個blob響應中創建一個'objectURL'('URL.createObjectURL(this.response)'),你可以通過'src'您的音頻元素。否則,如果您的目標瀏覽器確實支持AudioContextAPI,則可以使用['AudioContext.decodeAudioData()'](https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/decodeAudioData)方法。 – Kaiido
謝謝,你的回答幫了我很多。 – trahloff