离子媒体插件 - 将状态更新传递给mediaObject



我正在尝试像这样使用ionic native的媒体插件:

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的状态?

MediaPlugin 状态更新通知就是您获得的全部内容,因此请使用状态更改时获得的值设置一个类属性。

为了管理媒体对象,我将一个属性设置为解析承诺时获得的值。

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 仍然没有检测到属性更新。

相关内容

  • 没有找到相关文章

最新更新