Reproducción de sonido local en phonegap

Tengo un file .wav en mi carpeta www . Estoy usando jQuery con el siguiente código. Las alertas se apagan pero el sonido no se reproduce. ¿Estoy haciendo algo mal?

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

El sonido simplemente no se reproduce.

Intente dar una ruta local absoluta. P.ej

Nuevos medios ("/ android_asset / www / test.wav");

Eso debería funcionar en Android. Esperemos que solucionen esto en PhoneGap, ya que es una especie de error en la compatibilidad entre dispositivos.

Puede usar window.location.pathname para get la ruta de su aplicación en cualquier aplicación PhoneGap. De esa forma no tienes que codificarlo para Android. Se verá algo así en el iPhone:

/var/mobile/Applications/{GUID}/{appname}.app/www/index.html

Y esto en Android:

/android_asset/www/index.html

Desprenda el file:// /index.html , /index.html file:// y anexe su file test.wav .

Demo: http://jsfiddle.net/ThinkingStiff/r7eay/

Código:

 function getPhoneGapPath() { var path = window.location.pathname; path = path.substr( path, path.length - 10 ); return 'file://' + path; }; var snd = new Media( getPhoneGapPath() + 'test.wav' ); 

Tengo otra versión de getPhonegapPath, detecta cuando estás usando 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; };