javascript - 如何在使用 PhoneGap/Cordova 构建的 Android 应用程序中单击按钮时播放音频?

标签 javascript android html cordova

我正在构建一个类似音板的基本应用程序,它有几个播放声音的按钮。我正在使用 PhoneGap/Cordova,我正在使用 PhoneGap 构建服务将代码编译为 APK。起初,我使用的是简单的 HTML5 <audio>在桌面浏览器和 Android 浏览器中运行良好的标签,但是当打包到 PhoneGap 应用程序中时,没有播放任何声音。

我环顾四周,看到有人提到必须在 PhoneGap 中使用媒体 API 而不是标准的 HTML5 音频,所以我通过以下代码更改切换到它。

我有以下功能:

function doPlay(soundId) {
  var my_media = new Media("/android_asset/www/"+soundId+".mp3",
    function() {
      navigator.notification.alert('Success!', alertDismissed);
    },
    function(err) {
    navigator.notification.alert('Error!', alertDismissed);
  });
  my_media.play();
}

每个按钮都有一个 onclick处理程序类似于此...

onclick="doPlay('sound1');"

文件与 index.html 位于同一目录中, 称为 sound1.mp3 , sound2.mp3等等。和功能alertDismissed()也已定义,但它是空的。

但是,还是不行。点击没有声音。没有 'Success''Error'消息要么。是的,我有 notificationmedia请求权限。

我在这里很困惑。有什么想法吗?

更新:正如@simon-macdonald 所建议的,我添加了本地文件的完整路径(“/android_asset/www/”),但应用程序仍然无法运行.没有声音,没有错误/成功警报。 :-(

最佳答案

您的文件路径不正确。你想做的:

var my_media = new Media("/android_asset/www/" + soundId+".mp3",
function() {
  navigator.notification.alert('Success!', alertDismissed);
},
function(err) {
navigator.notification.alert('Error!', alertDismissed);
});
my_media.play();

查看我的迷你教程。

http://simonmacdonald.blogspot.ca/2011/05/using-media-class-in-phonegap.html

关于javascript - 如何在使用 PhoneGap/Cordova 构建的 Android 应用程序中单击按钮时播放音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10297193/

相关文章:

javascript - 不可见的 recaptcha - 如何以编程方式绑定(bind)到按钮?

javascript - 使 JSON 提要在服务器到服务器之间工作

javascript - js : element. className 不起作用(创建暗模式)

android - 使用 Intent 打开相机

css - HTML5/CSS : How to prevent stacking inside a div?

javascript - 无法比较星期五日期 JavaScript

android - 打开日历应用程序并在android中获取日期的点击事件

java - 在 fragment 中获取结果的问题

javascript - 想使用 Puppeteer 抓取表格。如何获取所有行,遍历行,然后为每一行获取 "td' s"?

html - 无法垂直对齐 div 中的纯文本以及文本溢出 : ellipsis