cordova媒体插件不适用于Android 4.4和5.0.0

时间:2017-10-26 20:49:39

标签: android cordova hybrid-mobile-app

我已经尝试在kitkat和棒棒糖中运行cordova媒体插件,但它没有显示任何响应。 甚至没有错误函数的第3个参数正在运行。 我也几乎阅读了关于这个问题的每一篇文章或问题,并尽我所能地尝试但没有任何效果。 我最后得出的结论是,在4.1以上的Android版本中,这个插件并不完全支持。

我试过了:

<script>
    document.body.onload="ready()";
  function ready()
  {
    document.addEventListener("deviceready",function() {
    var src;
    // src's value
  var med=new Media(src,
  function() {
  alert("success");
  },
  function(e)
  {
  alert("failed code: "+e);
  });
  med.play();
  med.release();},false);
  }
  </script>

这是我尝试用 // src的值替换

src = 'cdvfile://audio.mp3';

src = 'file:///android_asset/www/audio.mp3';

src = "cdvfile:///android_asset/www/audio.mp3";

src = "audio.mp3";

即使在我写完那个愚蠢的结论之后,我仍然怀疑它是如何在具有相同操作系统的某些设备上运行的。那么,任何制作音频文件的想法都可以在cordova app中播放?

更多信息: 1&gt;我的项目结构

appName
     |___www
           |___[+]css
           |___[+]js
           |___index.html
           |___[+]img
           |___audio.mp3

2&gt;我的目标是6.3.0 marshmallow

1 个答案:

答案 0 :(得分:0)

媒体绝对适合我的棉花糖 - 尽管我使用的是wav文件而不是mp3。我用

audioFail = loadAudio('sounds/no.wav'); where the file is stored in www/sounds

媒体构造函数是异步的,但您的代码在发出对构造函数的调用后立即使用med - 您是否确认med存在且在您尝试调用med.play()之前已定义?