【问题标题】:How do I play audio on clicking a button in an Android app built using PhoneGap/Cordova?如何在使用 PhoneGap/Cordova 构建的 Android 应用程序中单击按钮播放音频?
【发布时间】:2012-04-24 11:46:07
【问题描述】:

我正在构建一个类似音板的基本应用程序,其中包含一些播放声音的按钮。我正在使用 PhoneGap/Cordova,并且正在使用 PhoneGap Build 服务将代码编译为 APK。起初,我使用简单的 HTML5 <audio> 标签,它在桌面浏览器和 Android 浏览器中都能正常工作,但是当打包到 PhoneGap 应用程序中时,没有声音播放。

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

我有以下功能:

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.mp3sound2.mp3等。并且函数alertDismissed()也被定义了,但是是空的。

但是,它仍然不起作用。点击时没有声音。也没有'Success''Error' 消息。是的,我已请求 notificationmedia 权限。

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

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

【问题讨论】:

    标签: javascript android html cordova


    【解决方案1】:

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

    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

    【讨论】:

    • 我有预感会是这个,所以我兴奋地走上了这条路,但我仍然没有听到声音。我也没有收到成功/失败警报。还有一些我做得不对的地方。我在这里没有使用 Eclipse 是否有任何相关性?它只是纯文本编辑器和压缩并上传到 Build。
    • 好吧,我知道这段代码对我有用。您确定您的声音文件正在构建中打包吗?另外,当您测试您的应用程序时,您在“adb logcat”中看到了什么?那里通常有指向事情根本原因的错误。
    • 我放弃了Android开发,重回网络。
    【解决方案2】:

    我感觉您的问题与您编写的代码无关,但可能是您忘记在 head 部分中包含 cordova javascript 文件。

    <script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script> 
    

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多