繁体   English   中英

在phonegap中播放本地声音

[英]Playing local sound in phonegap

我的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("OK@!");
        var snd = new Media("test.wav");
        snd.play();
    }
});

</script> 

声音不起作用。

您可以使用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' );

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

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

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

我有另一个版本的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;
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM