【问题标题】:Playing local sound in phonegap在 phonegap 中播放本地声音
【发布时间】:2011-05-25 05:46:40
【问题描述】:

我的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> 

只是没有播放声音。

【问题讨论】:

    标签: android jquery ios cordova


    【解决方案1】:

    您可以使用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 刚刚发布,这在所有官方地方仍然没有记录。
    • 这个答案结束了 2 天的痛苦。非常感谢。
    • 我尝试使用上面的getPhoneGapPath()函数来获取ios中的本地文件音频路径。但它仍然没有解决。请告诉我如何在 ios 中指定本地音频文件路径。
    • 在使用 phonegap serve 而不是在本地安装应用程序时,有什么方法可以让本地声音文件正常工作?
    • @Sathiyaraj 如果从不是“index.html”的文件中调用获取路径的函数,则该函数将不起作用,因此您必须从返回的路径中裁剪多于或少于 10 个字符。试试这个:// Get absolute file path on the device. function getPhoneGapPath() { var path = window.location.pathname; var sizefilename = path.length - (path.lastIndexOf("/")+1); path = path.substr( path, path.length - sizefilename ); return path; };
    【解决方案2】:

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

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

    这应该可以在 Android 上运行。希望他们能在 PhoneGap 中解决这个问题,因为这是跨设备支持中的一个错误。

    【讨论】:

    • 感谢您提供这些信息。在看到路径之前,我无法弄清楚为什么它不起作用。我在写“/android_asset/polka.mp3”之类的东西。
    • iPhone 怎么样?有没有 iphone_asset 文件夹?
    • 如果我使用 Phone Gap Build 会有什么不同?
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 2017-04-29
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多