在 Cordova 应用程序中播放音频

2024-04-03

我正在使用 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>

我怎么解决这个问题 ?


浪费了2个小时,分享一下:

这不应该这么困难。没有完整的示例:https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-media/ 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');
  }

`

第四步:在需要播放声音的地方调用下面的方法:

playMP3();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Cordova 应用程序中播放音频 的相关文章

随机推荐

  • 开发 Excel Addin 时释放 COM?

    我知道在使用互操作时应该释放 COM 对象 开发和加载项 例如 Excel 时情况是否有点不同 这是我的一个循环 我很好奇是否Marshal ReleaseComObject是必要的 foreach var sheet in results
  • Regex / Preg:如果找到则不匹配

    我正在尝试做一些 PHP preg 但如果我想要一个没有任何东西的字符串 我似乎无法让它匹配 Example Hello My name is b Peter Jack b 如果找到 Peter Jack 的姓氏 则它将不匹配 但如果找到
  • 如何在 iOS 上发送短信而不需要用户同意?

    如何从 iOS 应用程序向某人发送文本消息 本地或通过使用 API 而无需他们事先与消息交互 该消息将被预先编写并通过点击屏幕发送 如果用户需要一次就可以了 但我需要一种发送消息的方法 而不必让用户每次都与他们的设备交互 例子 手机关机 我
  • 将值分配给 pandas 数据框值以获取另一列中的唯一值

    我有以下数据框 df pd DataFrame marks 40 60 90 20 100 10 30 70 students Jack Jack Jack Jack John John John John marks students 0
  • 如何使用 Python 从文本文件中绘制数据

    我有一个文本文件 其中包含来自连接到树莓派的传感器的近 50k 行数据 它看起来像这样 2014 07 16 15 57 35 536579 128 251 254 255 30 062 2014 07 16 15 57 37 763030
  • 在 Google Play 上发布新的生产版本而不影响 Beta 版

    我在 Google Play 商店中有一个生产应用程序 我还使用 Google Play 测试版功能向有限的群体发布了测试版 但是 如果我对生产应用程序进行更改 则需要重新构建并重新发布测试版应用程序 因为它会被新的生产版本覆盖 当我想在生
  • Jest TypeError:不是 Jest.mock 中的构造函数

    我正在尝试使用 jest 编写一个单元测试用例 并且需要模拟以下模式 我收到 TypeError 不是构造函数 用例 我的用例如下所述 我的组件 js import serviceRegistry from external service
  • 在 Windows 上运行在 Cygwin 中编译的 C++ 可执行文件

    The Idea我在 Cygwin 上使用 G 编译了一个 C exe 我希望能够通过 PHP 将该 exe 的输出放入我的 HTML 中 也就是说 假设我有一个 C 可执行文件 test exe 它输出 Hello World 运行时 那
  • 如何在自托管环境中对 ASP.NET Core 中的静态内容进行 gzip

    使用自托管环境发布 ASP NET Core 网站时 是否有方法提供 gzip 静态内容 编辑2016 11 13 还有另一种方式来提供 gzip 压缩文件来替代步骤 2 和 3 它基本上是相同的想法 但是有一个 nugetpackage
  • Jackson ObjectMapper:日期序列化和反序列化问题

    我想禁用宽松选项中Jackson Deserializer严格反序列化日期字段 基本上 我希望下面的代码抛出异常而不是 解析33 Aug 2016 as 02 Sep 2016 1 订单 java package com test date
  • 如何在项目中任意ViewController中全局访问Class中的数据

    我是斯威夫特的新手 目标 访问全球数据 如何使用Swift实现全局临时存储 使用下面的类来存储数据 In C 1 我使用具有静态属性的类 Class TransactionData public static DateTime dateTi
  • Python 2.7 - ttk 模块似乎无法在 Windows 8.1 中工作

    我的应用程序的 GUI 是Tkinter基于并且它非常实用 我一直在尝试使用 ttk 让它看起来更现代 我用Python 2 7在 Windows 8 1 中 输入ttk没有错误和编码 包括ttk在脚本中运行没有错误 然而 生成的界面看起来
  • android:删除ldpi/mdpi文件夹的陷阱

    我想知道删除我的 android 项目上的 ldpi mdpi hdpi 文件夹有什么陷阱 我可以只复制可绘制文件夹中的所有图像吗 我确实看到了以下关于 android UI 开发的链接http developer android com
  • SSL 套接字连接超时

    如何在 Java 中配置 SSL 套接字的连接超时 对于普通套接字 我可以简单地创建新的套接字实例 而无需使用任何目标端点new Socket 然后调用连接 SocketAddress端点 int超时 http download oracl
  • struts2 异步操作

    希望使用带有 Serlvet 3 0 异步支持的 Struts2 我的第一个方法是只处理写入操作中的输出流并返回 null 然而 这会返回 404 资源不可用 我试图在 struts 操作中调整 Bosh servlet 使用 Servle
  • 更新应用程序的最佳方式

    我正在使用 WPF 技术开发游戏 我想每三天向游戏添加新功能 更新的大小对我来说很重要 我的游戏需要联网才能启动 就像网络游戏一样 另一个挑战是更新的大小 最重要的注意事项 我需要更新程序不需要停止 你的建议是什么 clickonce 是个
  • 如何将 XYSplineRenderer 图中的正方形形状更改为点

    In JFreeChart XYSplineRenderer Graph I need to display small dots instead of small squares to display XY coordinates How
  • 修改VCL组件代码

    我需要更改组件中的功能 当您收到 您无法覆盖此 消息 或者您需要更改私有方法中的代码 基类中不存在该方法 消息 导致组件无法下降时 您该怎么办 如果我遇到这个问题 我首先尝试从组件或其 CustomXXX 祖先继承 看看是否可以解决问题 如
  • 如何在_Layout视图中访问UserProfile

    在我的 MVC 应用程序中 我有一个共享的 Layout cshtml 文件 用于显示用户的菜单 在该视图上 我想显示来自 UserProfile 实体的信息 使用 SimpleMembership 创建 因此链接到可以在 Layout 页
  • 在 Cordova 应用程序中播放音频

    我正在使用 Cordova 媒体插件在我的移动应用程序中播放音频 我尝试了很多代码 但我没有弄清楚我在底部做错了什么 我放了两段我尝试过的代码 第一个代码 js代码在单独的文件中 var app initialize function th