http GETでリクエストするクライアントに、oggエンコードされたオーディオを提供するサーバーがあります。 私はHTMLのオーディオSRCにGETルートを注入した場合、それはオーディオを受信し、それを果たしている:HTMLオーディオタグでバイナリ文字列を再生する
function working(text) {
var downloadURL = 'http://localhost:8080/nlc/synthesize' +
'?text=' + encodeURIComponent(text);
audio.pause();
audio.src = downloadURL;
audio.play();
};
私は(AngularJSで)HTTPのGETコールを使用して、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をデコードする方法はあります私はオーディオsrcに注入することができますか?
私は知らないが、XMLHttpRequest、yo urはその '.responseType'を' 'blob ''にセットし、 '' src''として渡すことができるこのBLOBレスポンス( 'URL.createObjectURL(this.response)')から 'objectURL'を作成します。あなたのオーディオ要素のそれ以外の場合、ターゲットブラウザがAudioContextAPIをサポートしている場合は、['AudioContext.decodeAudioData()'](https://developer.mozilla.org/ja/docs/Web/API/AudioContext/decodeAudioData)メソッドを使用できます。 – Kaiido
ありがとうございます、あなたの答えは私を助けました。 – trahloff