Skip to content

Instantly share code, notes, and snippets.

@tnqsoft
Last active June 14, 2017 07:47
Show Gist options
  • Save tnqsoft/6085d0568ad02e274dc8b40c05360265 to your computer and use it in GitHub Desktop.
Save tnqsoft/6085d0568ad02e274dc8b40c05360265 to your computer and use it in GitHub Desktop.
Angular 2 HTTP Audio
import { Response, RequestOptions, Headers, ResponseContentType } from '@angular/http';
import * as FileSaver from 'file-saver';
/**
* Get Audio
*
* @returns {Promise<Blob>}
*/
public getAudio(): Promise<Blob> {
let url = `http://example.com/demo.wav`;
let headers = new Headers({'Accept': 'audio/wav'});
let options = new RequestOptions({ headers: headers, responseType: ResponseContentType.Blob });
return this.http.get(url, options)
.map((res: Response) => {
return res.blob();
})
.toPromise();
}
//---------------------------------------------------------------------
this.exampleService.getAudio().then(blob => {
let fileName = `demo.wav`;
if (/MSIE|Trident|Edge/i.test(navigator.userAgent)) {
window.navigator.msSaveBlob(blob, fileName);
} else {
FileSaver.saveAs(blob, fileName);
}
}).catch(err => {
// Handle exception
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment