cordova - 在 Meteor-Cordova 应用程序中播放声音

标签 cordova meteor

使用没有 Cordova 的 meteor 我可以在我的浏览器中使用

 new Audio('test.mp3').play()

在哪里 test.mp3位于公用文件夹中。但是,一旦我将我的应用程序作为设备上的 Cordova 应用程序运行,我就无法播放声音。我究竟做错了什么?谢谢。

最佳答案

tl;博士

  • 安装cordova媒体插件meteor add cordova:org.apache.cordova.media@0.2.15
  • 将音频文件添加到公共(public)目录
  • 使用/android_asset/www/application/path/to/sound.wav

  • 如果您在项目中查看此文件夹,
    $PROJECT_ROOT/.meteor/local/cordova-build/platforms/android/assets/www/
    您将看到您的应用程序是 cordova 为 android 构建的。

    使用 Cordova Media 插件,我尝试使用文件路径 /android_asset/www/path/to/sound.wav无济于事。
    # Install the cordova media plugin with this command
    meteor add cordova:org.apache.cordova.media@0.2.15
    

    相反,我看到我的声音文件夹位于 www 目录中,但位于应用程序目录下。所以,这个文件路径最终对我有用,
    /android_asset/www/application/path/to/sound.wav
    这是对我有用的相关代码。
    function getMediaUrl(sound) {
    
      if (device.platform.toLowerCase() === "android") {
    
        return cordova.file.applicationDirectory.replace('file://', '') + 'www/application/' + sound.substr(1);
    
      }
      else {
    
        return cordova.file.applicationDirectory.replace('file://', '') + sound.substr(1);
    
      }
    
    }
    
    function playSound(sound) {
    
      return new Media(
    
        getMediaUrl(sound),
    
        function (success) {
          // success
        },
        function (err) {
          // error
        }
      );
    }
    
    var test = playSound('/sounds/test.wav');
    
    test.play();
    

    注意 :我将我的音频文件包含在公共(public)文件夹中,即
    $PROJECT_ROOT/public/sounds/test.wav
    在 Android 上,这个文件路径被翻译成
    /android_asset/www/application/sounds/test.wav

    关于cordova - 在 Meteor-Cordova 应用程序中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27432554/

    相关文章:

    android - 在构建 cordova 项目时出现 ANDROID_HOME PATH 错误

    javascript - 公共(public)文件夹在 Meteor 中不起作用

    javascript - Meteor 函数与变量跟踪

    javascript - 在android中的本地Html文件中加载Meteor.js

    jquery - 链接不会在带有 PhoneGap 的 JQuery Mobile 的外部浏览器中打开

    android - 谷歌身份验证后,即将到来的网址不允许我在 Cordova 应用程序中走得更远

    ios - Cordova 2.4.0 或 2.5.0 或 2.6.0 和 requirejs

    cordova - 是否可以在 Cordova iOS 插件中自动执行build设置?

    javascript - 在 Meteor 中为模板制作动画

    meteor : One database per tenant in multi-tenancy app