我正在为按钮水龙头和背景游戏音乐创建声音提供程序。在名为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文件中声明插件?因为我猜这是打字稿错误...
答案 0 :(得分:0)
我解决了这个问题,错误来自于使用NativeAudio(来自离子/本机)的原因,就像非本机模块一样。
constructor(
public nativeAudio : NativeAudio <---- HAD TO DELETE THIS
){}
之后我不应该在NativeAudio前面使用“this”