dev@133: /** dev@133: * Created by lucas on 17/03/2017. dev@133: */ dev@133: dev@133: import { dev@133: Component, dev@133: OnInit, dev@133: OnDestroy, dev@133: Output, dev@133: EventEmitter dev@236: } from '@angular/core'; dev@133: import { dev@133: AudioRecorderService, dev@133: RecorderServiceStatus dev@236: } from '../services/audio-recorder/audio-recorder.service'; dev@236: import {Subscription} from 'rxjs/Subscription'; dev@133: dev@133: @Component({ dev@133: selector: 'ugly-recording-control', dev@133: templateUrl: './recording-control.component.html' dev@133: }) dev@133: export class RecordingControlComponent implements OnInit, OnDestroy { dev@133: private recordingState: Subscription; dev@133: private newRecording: Subscription; dev@133: recordingStatus: RecorderServiceStatus; dev@133: @Output() finishedRecording: EventEmitter; dev@133: dev@133: constructor(private recordingService: AudioRecorderService) { dev@236: this.recordingStatus = 'disabled'; dev@133: this.finishedRecording = new EventEmitter(); dev@133: } dev@133: dev@133: ngOnInit(): void { dev@133: this.recordingState = this.recordingService.recordingStateChange$.subscribe( dev@133: (status: RecorderServiceStatus) => { dev@133: this.recordingStatus = status; dev@133: } dev@133: ); dev@133: this.newRecording = this.recordingService.newRecording$.subscribe( dev@133: (recordingBlob: Blob) => { dev@133: this.finishedRecording.emit(recordingBlob); dev@133: } dev@133: ); dev@133: } dev@133: dev@133: ngOnDestroy(): void { dev@133: this.recordingState.unsubscribe(); dev@133: this.newRecording.unsubscribe(); dev@133: } dev@133: dev@133: emitToggleRecording() { dev@133: this.recordingService.toggleRecording(); dev@133: } dev@133: }