我的.wav
文件夹中有www
个文件。我使用jQuery与以下代码。警报响起但声音没有播放。我做错了吗?
<script type="text/javascript" charset="utf-8" src="phonegap-0.9.2.js"></script>
<script type="text/javascript" charset="utf-8" src="jquery.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
window.alert("READY!");
document.addEventListener("deviceready", onDeviceReady, true);
function onDeviceReady(){
window.alert("OK@!");
var snd = new Media("test.wav");
snd.play();
}
});
</script>
声音无法播放。
答案 0 :(得分:48)
您可以使用window.location.pathname
在任何PhoneGap应用中获取应用的路径。这样您就不必为Android进行硬编码。在iPhone上它看起来像这样:
的/ var /移动/应用/ {GUID} / {appname中}。应用程序/网络/ index.html的
这在Android上:
/android_asset/www/index.html
剥离/index.html
,添加file://
,并附加文件test.wav
。
演示:http://jsfiddle.net/ThinkingStiff/r7eay/
代码:
function getPhoneGapPath() {
var path = window.location.pathname;
path = path.substr( path, path.length - 10 );
return 'file://' + path;
};
var snd = new Media( getPhoneGapPath() + 'test.wav' );
答案 1 :(得分:31)
尝试提供绝对的本地路径。 E.g。
新媒体(“/ android_asset / www / test.wav”);
这应该适用于Android。希望他们能在PhoneGap中解决这个问题,因为这是跨设备支持中的一个错误。
答案 2 :(得分:0)
我有另一个版本的getPhonegapPath,当你使用Android时它会检测到:
function getPhoneGapPath() {
var path = window.location.pathname;
path = path.substr( path, path.length - 10 );
var devicePlatform = device.platform;
if(devicePlatform=="Android"){
path = 'file://'+path;
}
return path;
};