0

这是我正在运行的代码:

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)

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

4

1 回答 1

1

原来有两个问题:第一个是我需要将文件路径更改为/android_asset/www/sounds/beep.mp3. 不过,我已经尝试过了,但因为它不起作用而将其解雇……这是由于第二个问题:cordova 媒体插件无法播放 WAV 文件。将文件转换为 mp3 后,它工作得很好。

为了未来的访问者的利益而保留这一点:重要的收获是

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

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

于 2016-09-12T21:59:32.420 回答