Guys. help, already desperate T_T. I will cite immediately the code:

window.AudioContext = window.AudioContext || window.webkitAudioContext; var context = new AudioContext(); function loadSound() { var request = new XMLHttpRequest(); request.open("GET", "http://localhost:3000/", true); request.responseType = "arraybuffer"; request.onload = function() { var Data = request.response; console.log(Data); process(Data); }; request.send(); } function process(Data) { var source = context.createBufferSource(); // Create Sound Source context.decodeAudioData(Data, function(buffer) { console.log(buffer); source.buffer = buffer; source.connect(context.destination); source.start(context.currentTime); }) } loadSound(); 

It works, the server returns and the music plays, here is the actual server code:

 router.get('/', function(req, res, next) { var file = __dirname + '/upload/star.mp3'; res.set({ 'Content-Type': 'audio/mpeg' }); var readStream = fs.createReadStream(file); readStream.pipe(res); }); 

But this guy is all about the drum, like the track comes, but does not play:

  export class AppComponent implements OnInit { title = 'app works!'; constructor(public http: Http) {} process(data) { let context = new AudioContext(); let source = context.createBufferSource(); // Create Sound Source context.decodeAudioData(data).then(buffer => { console.log(buffer); source.buffer = buffer; source.connect(context.destination); source.start(context.currentTime); }) } play() { this.http.get("http://localhost:3000/") .map((res: Response) => res.arrayBuffer()) .subscribe(res => { console.log(res); this.process(res); }, err => console.error(err), () => console.log('done') ) } } 

Actually, who can already come across what they did in this case?

    1 answer 1

    If it is useful to anyone, I missed the headers in the request

     play() { let options = new RequestOptions({ responseType: ResponseContentType.ArrayBuffer}); // вот то, чего не хватало this.http.get("http://localhost:3000/", options) .map((res: Response) => res.arrayBuffer()) .subscribe(res => { console.log(res); this.process(res); }, err => console.error(err), () => console.log('done') ) 

    }