# HG changeset patch # User Lucas Thompson # Date 1498763291 -3600 # Node ID f93582c38b708f675e14637286b09abdead4d92e # Parent 8113b6f5a75e6729bef2433de485fd6646bc4798 Don't dispose of old audio when loading new audio files. Also move resource manager type out of audio-player. diff -r 8113b6f5a75e -r f93582c38b70 src/app/app.module.ts --- a/src/app/app.module.ts Thu Jun 29 14:35:51 2017 +0100 +++ b/src/app/app.module.ts Thu Jun 29 20:08:11 2017 +0100 @@ -9,7 +9,6 @@ import { PlaybackControlComponent } from './playback-control/playback-control.component'; import { AudioPlayerService, - UrlResourceLifetimeManager, ResourceReader } from './services/audio-player/audio-player.service'; import { FeatureExtractionService } from './services/feature-extraction/feature-extraction.service'; @@ -92,6 +91,11 @@ }; } +export abstract class UrlResourceLifetimeManager { + abstract createUrlToResource(resource: File | Blob): string; + abstract revokeUrlToResource(url: string): void; +} + export function createResourceReader(): ResourceReader { return (resource) => { return new Promise((res, rej) => { diff -r 8113b6f5a75e -r f93582c38b70 src/app/services/audio-player/audio-player.service.ts --- a/src/app/services/audio-player/audio-player.service.ts Thu Jun 29 14:35:51 2017 +0100 +++ b/src/app/services/audio-player/audio-player.service.ts Thu Jun 29 20:08:11 2017 +0100 @@ -2,11 +2,7 @@ import {Subject} from 'rxjs/Subject'; import {Observable} from 'rxjs/Observable'; import {ReplaySubject} from 'rxjs/ReplaySubject'; - -export interface UrlResourceLifetimeManager { - createUrlToResource(resource: File | Blob): string; - revokeUrlToResource(url: string): void; -} +import {UrlResourceLifetimeManager} from '../../app.module'; export type ResourceReader = (resource: File | Blob) => Promise; @@ -66,9 +62,6 @@ loadAudio(resource: File | Blob): string { - if (this.currentObjectUrl) { - this.resourceManager.revokeUrlToResource(this.currentObjectUrl); - } const url: string = this.resourceManager.createUrlToResource(resource); this.currentObjectUrl = url; this.audioElement.pause();