Плагин ionic media - передать onStatusUpdate в mediaObject?

Я пытаюсь использовать плагин ionic native media следующим образом:

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

И я использую возвращенный из него mediaObj в другом месте, но мне также нужно знать статус mediaObj; очевидно, это происходит из-за передачи второго аргумента, функции обратного вызова, в функцию media.create(). Однако я не знаю, как получить там статус mediaObj. Я знаю, что следующее будет работать, просто сообщая мне статус, но мне действительно нужно получить к нему доступ.

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

Итак, вопрос в том, есть ли способ просто получить доступ к статусу mediaObj?


person Arfons    schedule 13.04.2017    source источник


Ответы (1)


Уведомление об обновлении статуса 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 все еще не обнаружил обновление свойства.

person William Allworth    schedule 19.04.2017