在phonegap中播放本地声音

jam*_*mes 28 jquery android ios cordova

我的.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> 
Run Code Online (Sandbox Code Playgroud)

声音不起作用.

Thi*_*iff 49

您可以使用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' );
Run Code Online (Sandbox Code Playgroud)

  • 这个答案结束了2天的苦难.非常感谢. (2认同)
  • 我尝试使用上面的getPhoneGapPath()函数来获取ios中的本地文件音频路径.但仍然没有解决.请告诉我如何在ios中指定本地音频文件路径. (2认同)

Ben*_*ers 32

尝试给出绝对的本地路径.例如

新媒体("/ android_asset/www/test.wav");

这应该适用于Android.希望他们能在PhoneGap中修复此问题,因为这是跨设备支持中的一个错误.