Mercurial > hg > ugly-duckling
comparison src/app/app.module.ts @ 454:f93582c38b70
Don't dispose of old audio when loading new audio files. Also move resource manager type out of audio-player.
author | Lucas Thompson <dev@lucas.im> |
---|---|
date | Thu, 29 Jun 2017 20:08:11 +0100 |
parents | be88a0e965d7 |
children | 5df3ce3574e5 |
comparison
equal
deleted
inserted
replaced
453:8113b6f5a75e | 454:f93582c38b70 |
---|---|
7 import { WaveformComponent } from './visualisations/waveform/waveform.component'; | 7 import { WaveformComponent } from './visualisations/waveform/waveform.component'; |
8 import { AudioFileOpenComponent } from './audio-file-open/audio-file-open.component'; | 8 import { AudioFileOpenComponent } from './audio-file-open/audio-file-open.component'; |
9 import { PlaybackControlComponent } from './playback-control/playback-control.component'; | 9 import { PlaybackControlComponent } from './playback-control/playback-control.component'; |
10 import { | 10 import { |
11 AudioPlayerService, | 11 AudioPlayerService, |
12 UrlResourceLifetimeManager, | |
13 ResourceReader | 12 ResourceReader |
14 } from './services/audio-player/audio-player.service'; | 13 } from './services/audio-player/audio-player.service'; |
15 import { FeatureExtractionService } from './services/feature-extraction/feature-extraction.service'; | 14 import { FeatureExtractionService } from './services/feature-extraction/feature-extraction.service'; |
16 import { FeatureExtractionMenuComponent } from './feature-extraction-menu/feature-extraction-menu.component'; | 15 import { FeatureExtractionMenuComponent } from './feature-extraction-menu/feature-extraction-menu.component'; |
17 import { ProgressSpinnerComponent } from './progress-spinner/progress-spinner.component'; | 16 import { ProgressSpinnerComponent } from './progress-spinner/progress-spinner.component'; |
90 URL.revokeObjectURL(url); | 89 URL.revokeObjectURL(url); |
91 } | 90 } |
92 }; | 91 }; |
93 } | 92 } |
94 | 93 |
94 export abstract class UrlResourceLifetimeManager { | |
95 abstract createUrlToResource(resource: File | Blob): string; | |
96 abstract revokeUrlToResource(url: string): void; | |
97 } | |
98 | |
95 export function createResourceReader(): ResourceReader { | 99 export function createResourceReader(): ResourceReader { |
96 return (resource) => { | 100 return (resource) => { |
97 return new Promise((res, rej) => { | 101 return new Promise((res, rej) => { |
98 const reader: FileReader = new FileReader(); | 102 const reader: FileReader = new FileReader(); |
99 reader.onload = (event: any) => { | 103 reader.onload = (event: any) => { |