でオーディオを録音するために大きなserviceが見つかりました。 しかし、私は理解していない少なくとも一つのことがあります:TypeScript 2:オブジェクトではなくクラスの呼び出しメソッド
this.MediaPlugin.startRecord();
質問:たとえば
はライン25で、なぜそれがthis.MediaPlugin.startRecord()
に呼び出し、this.mediaPlugin
は対象ではありませんthis.mediaPlugin.startRecord()
どこんクラスMediaPlugin
?
クラスがthis.MediaPlugin
を使用してアクションを実行する場合、なぜget
メソッドのオブジェクトに戻りますか?
完全なコード:
import { Injectable } from '@angular/core';
import { MediaPlugin } from 'ionic-native';
export enum AudioRecorderState {
Ready,
Recording,
Recorded,
Playing
}
@Injectable()
export class AudioRecorder {
mediaPlugin: MediaPlugin = null;
state: AudioRecorderState = AudioRecorderState.Ready;
get MediaPlugin(): MediaPlugin {
if (this.mediaPlugin == null) {
this.mediaPlugin = new MediaPlugin('../Library/NoCloud/recording.wav');
}
return this.mediaPlugin;
}
startRecording() {
this.MediaPlugin.startRecord();
this.state = AudioRecorderState.Recording;
}
stopRecording() {
this.MediaPlugin.stopRecord();
this.state = AudioRecorderState.Recorded;
}
startPlayback() {
this.MediaPlugin.play();
this.state = AudioRecorderState.Playing;
}
stopPlayback() {
this.MediaPlugin.stop();
this.state = AudioRecorderState.Ready;
}
}