为什么我从cordova媒体插件中收到非法调用错误?

时间:2016-09-12 20:53:31

标签: cordova media-player cordova-media-plugin

这是我正在运行的代码:

var clicker = new Media("sounds/click.wav", function(){ console.log("Playing Click"); }, console.log);
clicker.play();

我基本上是从文档中复制它,所以我认为它会立即起作用,但是当我实际尝试运行它时,我得到了这个错误:

I/MediaFocusControl( 1486):  AudioFocus  requestAudioFocus() from android.media.AudioManager@21802acforg.apache.cordova.media.AudioHandler$1@3bb77c5c req=1flags=0x0
I/chromium( 3671): [INFO:CONSOLE(312)] "Error in Success callbackId: Media1544259360 : TypeError: Illegal invocation", source: file:///android_asset/www/cordova.js (312)

导致此错误的原因是什么?我尝试了各种不同的成功回调函数,但没有一个能够工作,所以我现在怀疑这可能是由于某个地方的错误配置完全独立,但我不知道如何追踪它。

1 个答案:

答案 0 :(得分:1)

事实证明存在两个问题:首先,我需要将文件路径更改为/android_asset/www/sounds/beep.mp3。我已经尝试过了,并且因为它没有用而解雇它...这是由于第二个问题:cordova媒体插件无法播放WAV文件。将文件转换为mp3后,效果非常好。

为了未来的访客的利益而离开这里:重要的一点是

a)“非法调用”可能意味着“文件无效或丢失”

b)媒体文件必须是mp3格式,而不是wav。