J'ai un fichier .wav
dans mon dossier www
. J'utilise jQuery avec le code suivant. Les alertes se déclenchent mais le son ne joue pas. Est-ce que je fais quelque chose de 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>
Le son ne joue tout simplement pas.
Essayez de donner un chemin local absolu. Par exemple.
nouveau média ("/ Android_asset/www/test.wav");
Cela devrait fonctionner sur Android. J'espère qu'ils vont résoudre ce problème dans PhoneGap, car il s'agit d'un bug dans le support inter-appareils.
Vous pouvez utiliser window.location.pathname
pour obtenir le chemin de votre application dans n’importe quelle application PhoneGap. De cette façon, vous n'avez pas à le coder en dur pour Android. Cela ressemblera à ceci sur iPhone:
/var/mobile/Applications/{GUID}/{appnameBuch.app/www/index.html
Et ceci sur Android:
/Android_asset/www/index.html
Dénudez le /index.html
, ajoutez le file://
au début et ajoutez votre fichier test.wav
.
Démo: http://jsfiddle.net/ThinkingStiff/r7eay/
Code:
function getPhoneGapPath() {
var path = window.location.pathname;
path = path.substr( path, path.length - 10 );
return 'file://' + path;
};
var snd = new Media( getPhoneGapPath() + 'test.wav' );
J'ai une autre version de getPhonegapPath, elle détecte lorsque vous utilisez 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;
};