Подтвердить что ты не робот

Воспроизведение локального звука в телефонной зазоре

У меня есть файл .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("[email protected]!");
        var snd = new Media("test.wav");
        snd.play();
    }
});

</script> 

Звук просто не воспроизводится.

4b9b3361

Ответ 1

Попробуйте дать абсолютный локальный путь. Например.

new Media ( "/android_asset/www/test.wav" );

Это должно работать на Android. Надеюсь, они исправят это в PhoneGap, поскольку это что-то вроде ошибки в поддержке кросс-устройств.

Ответ 2

Вы можете использовать window.location.pathname, чтобы получить путь к вашему приложению в любом приложении PhoneGap. Таким образом, вам не нужно жестко кодировать его для Android. Это будет выглядеть примерно так на iPhone:

/вар/мобильный/Применения/{GUID}/{имя_приложения}.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' );

Ответ 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;
};