Ionic2 给定音频id的引用已存在,但引用不存在

Ionic2 给定音频id的引用已存在,但引用不存在,ionic2,Ionic2,嗨,我一直在使用cordova原生插件在我的应用程序中播放音频。我有音频列表,我为列表中的每个项目添加了播放和停止按钮 当我单击“播放”时,出现以下错误: 未处理的承诺拒绝:该承诺的引用不存在 指定的音频id;区域:;任务:空;值:引用 指定的音频id不存在。未定义 但有时我会发现:引用已经存在。虽然我的音频播放正常 谁能告诉我如何解决这些错误。我不希望这些警报之间停止我的应用程序本身 playAudio(id, source) { console.log(id + " " + sou

嗨,我一直在使用cordova原生插件在我的应用程序中播放音频。我有音频列表,我为列表中的每个项目添加了播放和停止按钮

当我单击“播放”时,出现以下错误:

未处理的承诺拒绝:该承诺的引用不存在 指定的音频id;区域:;任务:空;值:引用 指定的音频id不存在。未定义

但有时我会发现:引用已经存在。虽然我的音频播放正常

谁能告诉我如何解决这些错误。我不希望这些警报之间停止我的应用程序本身

playAudio(id, source) {
   console.log(id + "   " + source);
   this.nativeAudio.preloadSimple(id.toString(), source);    
   this.nativeAudio.play(id.toString());
}

简单的方法有什么问题吗。

我也有同样的问题。为了解决这个问题,我在应用程序启动时预装了音频

在您的
app.component.ts
(Im使用ionic 3)中,检查平台是否准备就绪后,用以下内容预加载音频:

this.nativeAudio.preloadSimple('pin3', 'assets/audios/pin3Audio.mp3');   

preload-simple
返回承诺:

this.nativeAudio.preloadSimple(id.toString(), source).then(
  () => this.nativeAudio.play(id.toString())
);

我希望这是有帮助的。关于

我已尝试过此方法,但此解决方案不起作用。请注意,我使用的是Ionic 2、angular 2和TypeScript。在我的情况下,一旦重新启动应用程序,这将导致相同的错误。问题是,在预加载之前,它正在播放音频,所以现在它是在then()方法中,所以音频将在预加载文件后播放。谢谢