Как использовать плагин Ionic Native Media в Ionic 2/3

Я часами боролся, пытаясь внедрить медиа-плагин в свое приложение ionic 3. Я просмотрел документы Ionic, а также документы плагинов, но оба, похоже, имеют другой способ его реализации. Единственный способ заставить его работать - это сделать следующее, но я думаю, что это неправильный путь, и код просто выглядит грязным!

home.ts:

import { Media, MediaObject } from '@ionic-native/media';

constructor(private media: Media) {}

playAudio() { 
const radio: MediaObject = this.media.create('MY_URL');
radio.play();
}

stopAudio() { 
const radio: MediaObject = this.media.create('MY_URL');
radio.stop();
}

home.html:

<ion-content...>

<button ion-button color="secondary" (click)="playAudio()">Play</button>

<button ion-button color="secondary" (click)="playAudio()">Play</button>

Мне приходится дважды дублировать URL-адрес потока (и в воспроизведении, и еще раз в функции остановки), просто чтобы заставить его работать - я знаю, что это неправильный путь, кто-нибудь, пожалуйста, помогите. Спасибо!


person TC Roberts    schedule 08.09.2017    source источник
comment
ответ ниже...   -  person TC Roberts    schedule 08.09.2017


Ответы (1)


Почему бы вам не попытаться создать экземпляр свойства радио в конструкторе?

import { Media, MediaObject } from '@ionic-native/media';

export class MyComponent {
  radio: MediaObject

  constructor(private media: Media) {
    this.radio = this.media.create('MY_URL');
  }

  playAudio() { 
    this.radio.play();
  }

  stopAudio() { 
    this.radio.stop();
  }
}
person Sonicd300    schedule 08.09.2017
comment
Привет, спасибо за обращение! Похоже, это работает только тогда, когда вы помещаете this.radio = this.media.create('MY_URL'); в функцию playAudio. Я разместил ответ. Спасибо! - person TC Roberts; 08.09.2017
comment
Вы пытались, как я написал, создать экземпляр this.radio в конструкторе? - person Sonicd300; 08.09.2017
comment
Привет. Да, я сделал... и это то, что я имел в виду под неработающим. Спасибо. - person TC Roberts; 08.09.2017