2012-04-24 41 views
3

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

我环顾四周,看到一些提到不得不在PhoneGap中使用Media 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权限请求。

我很难过。有任何想法吗?

更新:作为建议由@西蒙·麦克唐纳,我把一个完整路径本地文件(“/ android_asset /网络/”),但仍然没有得到应用工作。没有声音,没有错误/成功警报。 :-(

回答

3

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

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

+0

我有一种感觉就是这样,所以我兴奋地放在这条路上,但我仍然没有听到声音。我也没有得到成功/失败的警报。还有一些事情我做得不对。在这里我没有使用Eclipse有什么相关性?这只是纯文本编辑器,并压缩并上传到Build。 – aalaap 2012-04-29 11:47:33

+0

嗯,我知道这段代码适合我。你确定你的声音文件正在build中打包吗?另外,当你测试你的应用程序时,你在“adb logcat”中看到了什么?那里通常有错误指出事情的根本原因。 – 2012-04-29 15:32:25

+0

我放弃了Android开发并回到了网络。 – aalaap 2016-12-26 07:25:25

0

我有一种感觉你的问题是与你所写的代码无关,但也许你已经忘记了将Cordova JavaScript文件包含在你的头部。

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

祝你好运。

相关问题