【问题标题】:playing audio sounds in Cordova application在 Cordova 应用程序中播放音频声音
【发布时间】:2016-07-24 22:39:27
【问题描述】:

我正在使用 Cordova 媒体插件在我的移动应用程序中播放音频 我尝试了很多代码,但我没有弄清楚我在底部做错了什么我放了两条我尝试过的代码

第一个代码(单独文件中的js代码)

   var app = {
    initialize: function() {
        this.bindEvents();
    },
    bindEvents: function() {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    onDeviceReady: function() {


        var myMedia = new Media("../sounds/clapping.mp3");
        myMedia.play();

    }
};

app.initialize();

第二个代码(脚本标签中的js代码):

     document.addEventListener("deviceready", function(){

   var myMedia = null;
    function playAudio() {

    var src = "sounds/clapping.mp3";

    if(myMedia === null) {
    myMedia = new Media(src, onSuccess, onError);

    function onSuccess() {
    console.log("playAudio Success");
    }

    function onError(error) {
    console.log("playAudio Error: " + error.code);
    }

    }

    myMedia.play();
    }

    document.getElementById("playAudio").addEventListener("click", playAudio);
    });

有一个按钮:

<button id ="playAudio">PLAY</button>

我该如何解决这个问题?

【问题讨论】:

  • 感谢您的有用回复我尝试了您的代码,但它也不起作用。我在读一本书时发现:“Cordova 应用程序存储与应用程序一起打包的媒体文件的位置因不同的移动设备平台而异。Android 文件位于 /android_asset 文件夹中,”但是当我搜索此文件时在我的项目中我没有找到它
  • 发布在 github 页面上的代码都在设备(iOS 和 Android)中进行了尝试和测试所以您能否发布您在设备中尝试此示例时遇到的错误?
  • 在我的智能手机中没有错误消息,但是当我在虚拟设备中打开我的应用程序时,我收到一个弹出窗口,提示 /android_asset/www/ 下没有文件
  • 在 Myproject\platforms\android 中有我更改的资产文件 return "/android_asset/www/" + s;返回 "/assets/www/" + s;但声音也不行

标签: android jquery cordova cordova-plugins


【解决方案1】:

浪费了 2 个小时,在这里分享:

这不应该这么难。没有完整示例:https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-media/

简单的分步详情:

  1. 把我的文件放到www:

例如:www/audio/button-1.mp3

  1. 安装插件:

    cordova plugin add cordova-plugin-media

  2. 复制粘贴代码如下:

`

  function getFullMediaURL(s) {
    return cordova.file.applicationDirectory + 'www/audio/button-1.mp3'
  }

  function playMP3() {
    let src = getFullMediaURL();
    var myMedia =
      new Media(src,
        function () { },
        function (e) { alert('Media Error: ' + JSON.stringify(e)); }
      );
    myMedia.play();
    myMedia.setVolume('1.0');
  }

`

第 4 步:在您需要播放声音的地方调用以下代码:

playMP3();

【讨论】:

    【解决方案2】:

    要回答您的问题,您可以在以下github page 中找到使用媒体插件的cordova 应用程序的工作示例。

    如示例项目的 README 中所述,您还必须安装 cordova 设备插件以检查设备平台。

    另外为了澄清你在评论中提到的疑问,android_asset 指的是项目的根文件夹。

    【讨论】:

      猜你喜欢
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多