2017-04-13 3 views
0

は、私はこのようなイオン性ネイティブのmediaプラグインを使用しようとしている:イオンメディアプラグイン - onStatusUpdateをmediaObjectに渡しますか?

record(){ 
    ... 
    return this.media.create(src,onStatusUpdate).then((mediaObj) => { 
     mediaObj.startRecord(); 
     return mediaObj; 
    }); 
} 

そして私はmediaObjは別の場所、それから戻って使用しますが、私はまた、mediaObjの状況を知っておく必要があります。これは明らかに、コールバック関数である2番目の引数をmedia.create()関数に渡すことによって発生します。しかし、そこにmediaObjのステータスを取得する方法はわかりません。私は次のことが私にステータスを伝えるために働くことは知っていますが、実際にはそれにアクセスする必要があります。

const onStatusUpdate = (status) => console.log(status); 

したがって、mediaObjのステータスに簡単にアクセスする方法はありますか?

答えて

0

MediaPluginステータス更新通知はすべて取得するので、ステータスが変更されたときに取得する値でクラスプロパティを設定します。

MediaObjectを管理するために、私は約束が解決されたときに得られた値にプロパティを設定しました。

import { ApplicationRef } from '@angular/core'; 
... 
... 

export class PlayerPage { 
    track:any; 
    file:MediaObject = undefined; 
    position:any = undefined; 
    status:any = 0; 

    constructor(public ref ApplicationRef, public navCtrl: NavController, private navParams: NavParams, public AppstateProvider: Appstate, private media: MediaPlugin) { 
    this.track = navParams.get('track'); 

    media.create('http://.../...mp3',(status)=>{ 
     this.status = status; 
     this.ref.tick(); 
    }).then((file: MediaObject) => { 
     this.file = file; 
    }); 
    } 

play() { 
    this.file.play(); 
} 

this.ref.tick(); Angularがこのプロパティの更新を検出しないため、必要ありません。公開と購読を試みました。Angularはプロパティの更新を検出しませんでした。

関連する問題