Mercurial > hg > ugly-duckling
changeset 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 | 8113b6f5a75e |
children | d27f1ca7ba6a |
files | src/app/app.module.ts src/app/services/audio-player/audio-player.service.ts |
diffstat | 2 files changed, 6 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- 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) => {
--- 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<ArrayBuffer>; @@ -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();