NativeAudio无法处理离子2 rc0和rc1

时间:2016-10-11 10:03:49

标签: cordova-plugins ionic2

我正在为按钮水龙头和背景游戏音乐创建声音提供程序。在名为sound.ts的My Sound提供程序中,我正在使用NativeAudio插件并定义了一个用于预加载声音数据的函数。但是当我用

构建我的应用程序时
  

离子运行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 & sounds
      config.loadDefault()
        .then(msg => {
          console.log(msg);
          return sound.loadSounds(); <----------(HERE)
        })
        .then(msg => {
          console.log(msg);
        })
        .catch(err => {
...

我的app.module.ts注入 NativeAudio 提供程序和我的自定义Sound提供程序。 所以我开始质疑rc0的插件是否有问题,或者我错过了什么?

我是否必须以某种方式声明NativeAudio,以及如何在我的povider .ts文件中声明插件?因为我猜这是打字稿错误...

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,错误来自于使用NativeAudio(来自离子/本机)的原因,就像非本机模块一样。

  constructor(
    public nativeAudio : NativeAudio <---- HAD TO DELETE THIS
  ){}

之后我不应该在NativeAudio前面使用“this”