我正在尝试使用离子原生的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的状态?
答案 0 :(得分:0)
您可以获得MediaPlugin状态更新通知,因此请设置一个类属性,其中包含状态更改时获得的值。
要管理MediaObject,我将属性设置为解析promise时获得的值。
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仍然没有检测到属性更新。