2015-05-15 13 views
5

Funziona perfettamente su iOS.L'audio non viene riprodotto su Android con PhoneGAP, ma funziona correttamente su iOS

molte risposte che ho guardato tra questi 2:

Play sound on Phonegap app for Android

HTML5 audio not playing in PhoneGap App (Possible to use Media?)

Ho provato tutte le soluzioni:

  • Cambiare il percorso di /android_asset/www/ per Android
  • Utilizzo di file .ogg
  • Pre caricare l'audio con una riproduzione()/pausa().
  • Utilizzando il plugin supporto fornito da Cordova/PhoneGap

Qui è il mio codice corrente:

if(device.platform === "Android") //DIFFERENT PATH FOR ANDROID 
{ 
    url = "/android_asset/www/sound.ogg"; 
}else{ 
    url = "sound.mp3"; 
} 
alert(url); 
sound = new Media(url); 
sound.play(); 

Chiunque ha un idee ?? Mi sento come se stessi girando in tondo

+1

Ho affrontato lo stesso problema e ancora nessuna soluzione. – NarendraJi

+0

Hmmmm, questo è preoccupante! Ci sono così tante risposte diverse su Stackoverflow, ma nessuna sembra funzionare:/ – smj2393

+1

Hai provato su un emulatore o un dispositivo reale? Prova a premere il tasto hardware del volume, si blocca la tua app? –

risposta

0

sono finalmente riuscito a farlo funzionare !!

ho inizializzazione del file audio, trovando il percorso completo Android utilizzando @Sarim Sidd aiutare sopra e poi precarico il file audio:

//INITIALISE SOUND 
if(device.platform === "Android") //DIFFERENT PATH FOR ANDROID 
{ 
    //navigator.notification.beep(1); 
    var path = window.location.pathname; 
    path = path.substr(path, path.length - 10); //strip off index.html 
    url = 'file://'+path+"sound.ogg"; 
}else{ 
    url = "sound.mp3"; 
} 
//sound = new Media(url); 
sound = new Media(url); 
sound.play(); 
sound.pause(); 

Poi, quando per riprodurre l'audio ho costretto il volume al massimo (1,0) prima di chiamare il metodo di riproduzione. Per qualche motivo ho notato l'audio mantenuto reseting per disattivare ogni volta che ho iniziato l'applicazione:

//PLAY BELL SOUND THROUGH APP 
sound.setVolume(1.0); 
sound.play(); 
2

Avevo simile e questa soluzione ha funzionato per me Ottieni il percorso completo della tua applicazione usando window.location.pathname, in questo modo non devi preoccuparti del tipo di dispositivo, ti darà il completo percorso compreso index.html e utilizzando la funzione di seguito semplicemente togliere lo index.html dalla stringa e aggiungere il file multimediale.

function getPhoneGapPath() { 

var path = window.location.pathname; 
path = path.substr(path, path.length - 10); //strip off index.html 
return 'file://' + path; 

}; 

E poi

url = getPhoneGapPath()+'sound.ogg'; //OR MP3 

alert(url); 
sound = new Media(url); 
sound.play(); 

Spero che questo aiuti

+1

Ancora senza fortuna! L'URL restituisce 'file: /// android_asset/www/sound.ogg' – smj2393

1

Questo mi ha dato un sacco di problemi per Android, ma alla fine ho risolto. È possibile trovare la soluzione descritta qui: Solution

+2

Ciao James, mentre questo link può rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento.Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. Dai un'occhiata qui: [Perché e come vengono cancellate alcune risposte?] (Http://stackoverflow.com/help/deleted-answers) – bummi

+0

link is dead now ... – CodeGems

+0

Ed è per questo che inserisci qui le risposte e non in un collegamento ... – Flummox

Problemi correlati