#cordova-plugins #ionic2
#cordova-плагины #ionic2
Вопрос:
Я нахожусь в процессе создания поставщика звука для нажатий кнопок и фоновой музыки в игре. В моем поставщике звука под названием sound.ts я использую плагин NativeAudio и определил функцию для предварительной загрузки моих звуковых данных. Но когда я создаю свое приложение с
ionic работает под управлением Android -c
Я получаю следующее сообщение об ошибке:
ngc: Ошибка: свойство ‘preloadSimple’ не существует для типа ‘NativeAudio’.
sound.ts
import { Injectable } from '@angular/core';
import { NativeAudio } from 'ionic-native';
...
@Injectable()
export class Sound {
constructor(
public nativeAudio : NativeAudio
){}
loadSounds(){
return this.nativeAudio.preloadSimple('buttonTick', 'assets/sounds/button-tick.wav')
.then(()=>{
return Promise.resolve("loaded sounds successfully");
})
.catch(this.handleError);
}
...
В моем app.component.ts я запускаю метод loadSounds () моего поставщика звука
app.component.ts
import ... // Config/Sound/...
...
constructor(
public platform : Platform,
public config : Config,
public sound : Sound
){
platform.ready().then(() => {
// loading config amp; sounds
config.loadDefault()
.then(msg => {
console.log(msg);
return sound.loadSounds(); <----------(HERE)
})
.then(msg => {
console.log(msg);
})
.catch(err => {
...
Мой app.module.ts вводит поставщика NativeAudio и моего пользовательского поставщика звука.
Итак, я задаюсь вопросом, что-то не так с плагином для rc0 или я что-то пропустил?
Должен ли я каким-то образом объявлять NativeAudio и как мне объявить плагин в моем файле povider .ts? потому что я предполагаю, что это ошибка машинописи…
Ответ №1:
Я решил эту проблему, причина ошибки возникла из-за использования NativeAudio (из ionic / native) как неродного модуля.
constructor(
public nativeAudio : NativeAudio <---- HAD TO DELETE THIS
){}
и после этого я не должен использовать «это» перед NativeAudio