Electron(ChromiumとNode.jsの環境)で、
音データ(バイナリ)が返ってくるAPIにリクエストを送って、それをそのまま再生したいと思っています。
下記のように実行すると、ファイルに保存した場合は別のソフトから再生できるのですが、
Audio要素を使った方法では再生できません。
const request = require('request'); const fs = require('fs'); request.post({ url: 'https://example.com/', form: { hoge: 'fuga' }, encoding: 'binary' }, function (error, response, body) { // ここで保存したファイルは再生できる /*fs.writeFile('temp.ogg', body, 'binary', function(err){ if (err) throw err });*/ // これでは音が鳴らない(エラーも発生しない) var base64 = new Buffer(body).toString('base64'); audio = new Audio('data:audio/ogg;base64,' + base64); audio.play(); });
console.logしてみると、それっぽいbase64の文字列は出てきているのですが、
その文字列をコピーして、どのブラウザのコンソールで実行しても音が鳴らないので、
var base64から始まる3行のやり方がおかしいのかなと思っています。
環境としては、
Window 8.1
electron-prebuilt v0.35.6
音声形式はAAC,OGGのどちらかが再生できれば十分です。
自己解決できなかったため質問させていただきました。
どうか助けてください。よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。