Mercurial > hg > ugly-duckling
changeset 30:5bdfcf493646
Just emit the file object from audio-file-open.
author | Lucas Thompson <dev@lucas.im> |
---|---|
date | Wed, 30 Nov 2016 10:18:03 +0000 |
parents | 42c97f604d80 |
children | f6ea31a3b1a3 |
files | src/app/audio-file-open/audio-file-open.component.ts |
diffstat | 1 files changed, 4 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/src/app/audio-file-open/audio-file-open.component.ts Tue Nov 29 12:00:07 2016 +0000 +++ b/src/app/audio-file-open/audio-file-open.component.ts Wed Nov 30 10:18:03 2016 +0000 @@ -3,15 +3,6 @@ EventEmitter, NgZone } from '@angular/core'; -interface AudioContextConstructor { - new(): AudioContext -} - -interface WindowAudioContext { - AudioContext?: AudioContextConstructor; - webkitAudioContext?: AudioContextConstructor -} - @Component({ selector: 'app-audio-file-open', templateUrl: './audio-file-open.component.html', @@ -20,16 +11,10 @@ export class AudioFileOpenComponent implements OnInit { @ViewChild('open') open: ElementRef; - @Output() audioLoaded: EventEmitter<AudioBuffer>; + @Output() fileOpened: EventEmitter<File>; - private audioContext: AudioContext; - - constructor(private zone: NgZone) { - this.audioLoaded = new EventEmitter<AudioBuffer>(); - - // TODO make a service which provides the AudioContext? - const factory: WindowAudioContext = (window as WindowAudioContext); - this.audioContext = new (factory.AudioContext || factory.webkitAudioContext)(); + constructor() { + this.fileOpened = new EventEmitter<File>(); } ngOnInit() { @@ -37,15 +22,7 @@ decodeAudio(files: FileList) { if (files.length > 0) { - const reader: FileReader = new FileReader(); - reader.onload = (event: any) => { - this.audioContext.decodeAudioData(event.target.result, buffer => { - this.zone.run(() => { - this.audioLoaded.emit(buffer); - }); - }); - }; - reader.readAsArrayBuffer(files[0]); + this.fileOpened.emit(files[0]); } }