在手机上播放本地声音
我在我的www
文件夹中有.wav
文件。我用下面的代码使用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("[email protected]!");
var snd = new Media("test.wav");
snd.play();
}
});
</script>
声音不起作用。
尝试给出一个绝对的本地路径。例如。
new Media(“/ android_asset/www/test.wav”);
这应该适用于Android。希望他们能够在PhoneGap中解决这个问题,因为这是跨设备支持中的一个错误。
您可以使用window.location.pathname
在任何PhoneGap应用程序中获取应用程序的路径。这样你就不必为Android进行硬编码。它看起来在iPhone上是这样的:
/var/mobile/Applications/{GUID}/{appname}.app/www/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');
谢谢你为此感谢! Phonegap 3.0刚刚发布,这在所有官方地方仍然没有记录。 – c0bra 2013-07-23 17:33:17
这个答案结束了2天的痛苦。非常感谢。 – tomwoods 2014-03-05 00:53:27
我尝试通过使用上面的getPhoneGapPath()函数来获取ios中的本地文件音频路径。但它仍然没有解决。请给我一个关于如何在ios中指定本地音频文件路径的想法。 – Sathiyaraj 2014-07-11 16:12:33
我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;
};
感谢您该位信息的。直到我看到路径时,我无法弄清楚为什么它不能工作。我正在写“/android_asset/polka.mp3”和类似的东西。 – wavyGravy 2011-09-22 06:04:03
iPhone怎么办?有没有iphone_asset文件夹? – Mark 2012-06-06 00:15:16
如果我使用手机差距构建,使它有所不同? – 2013-03-02 15:06:26