annotate src/app/app.component.ts @ 40:f7244f2155a3

Setup some scaffolding for bootstrapping a worker and loading into a service, providing a mechanism for implementing most of the logic which runs inside the worker in TypeScript.
author Lucas Thompson <dev@lucas.im>
date Thu, 01 Dec 2016 15:46:33 +0000
parents f6e58c2accb0
children 933c64ebcd13
rev   line source
dev@31 1 import {Component} from '@angular/core';
dev@37 2 import {AudioPlayerService} from "./services/audio-player/audio-player.service";
angular-cli@0 3
angular-cli@0 4 @Component({
angular-cli@0 5 selector: 'app-root',
angular-cli@0 6 templateUrl: './app.component.html',
angular-cli@0 7 styleUrls: ['./app.component.css']
angular-cli@0 8 })
angular-cli@0 9 export class AppComponent {
dev@31 10 audioBuffer: AudioBuffer; // TODO consider revising
dev@1 11
dev@31 12 constructor(private audioService: AudioPlayerService) {}
dev@16 13
dev@31 14 onFileOpened(file: File) {
dev@31 15 const reader: FileReader = new FileReader();
dev@31 16 const mimeType = file.type;
dev@31 17 reader.onload = (event: any) => {
dev@31 18 this.audioService.loadAudioFromUrl(
dev@31 19 URL.createObjectURL(new Blob([event.target.result], {type: mimeType}))
dev@31 20 );
dev@31 21 // TODO use a rxjs/Subject instead?
dev@31 22 this.audioService.decodeAudioData(event.target.result).then(audioBuffer => {
dev@31 23 this.audioBuffer = audioBuffer;
dev@31 24 });
dev@31 25 };
dev@31 26 reader.readAsArrayBuffer(file);
dev@16 27 }
angular-cli@0 28 }